Escolar Documentos
Profissional Documentos
Cultura Documentos
4
Informtica
Programao
de Computadores
Informtica
Volume 4
Informtica
Programao de
computadores
So Paulo
2010
Governador
Presidente Jos Serra
Paulo Markun
Vice-Presidente Vice-Governador
Fernando Jos de Almeida Alberto Goldman
Secretrio de Desenvolvimento
Geraldo Alckmin
Ncleo Cultura Educao Edio de texto: Marlene Jaggi
Coordenador: Fernando Jos de Almeida Editores assistentes: Celia Demarchi
Gerente: Monica Gardelli Franco e Wagner Donizeti Roque
Secretrio editorial: Antonio Mello
Equipe de autoria Centro Paula Souza Revisores: Antonio Carlos Marques, Fabiana Lopes
Coordenao geral: Ivone Marchi Lainetti Ramos
Bernardino, Jos Batista de Carvalho, Lieka Felso
Coordenao da srie Informtica: Luis Eduardo
e Miguel Facchini
Fernandes Gonzalez Direo de arte: Deise Bitinas
Autores: Carlos Eduardo Ribeiro, Evaldo Fernandes
Edio de arte: Ana Onofri
Ru Jnior, Gustavo Dibbern Piva, Joo Paulo Lemos Presidente do Conselho Deliberativo
Editoras assistentes: Nane Carvalho, Nicia Cecilia
Escola, Luciene Cavalcanti Rodrigues, Ralfe Della Yolanda Silvestre
Lombardi e Roberta Moreira
Croce Filho, Wilson Jos de Oliveira Assistentes: Ana Silvia Carvalho, Claudia Camargo
Diretora Superintendente
Reviso tcnica: Anderson Wilker Sanfins, Luis Laura Lagan
e Felipe Lamas
Claudinei de Moraes, Humberto Celeste Innarelli, Ilustraes: Carlos Grillo
Srgio Furgeri Pesquisa iconogrfica: Completo Iconografia,
Maria Magalhes e Priscila Garofalo Vice-Diretor Superintendente
Equipe de Edio
Fotografia: Carlos Piratininga, Eduardo Pozella (fotgrafos) Csar Silva
Coordenao geral e Daniela Mller (produtora) Chefe de Gabinete da Superintendncia
Alfredo Nastari Tratamento de imagens: Sidnei Testa
Coordenao editorial Elenice Belmonte R. de Castro
Mirian Ibaez Coordenadora da Ps-Graduao, Extenso e
Impresso em Vitopaper 76g, papel
Consultor tcnico sinttico de plstico reciclado, da Vitopel, Pesquisa
Victor Emmanuel J. S. Vicente pela Grfica Ideal. Helena Gemignani Peterossi
Coordenador do Ensino Superior de Graduao
Angelo Luiz Cortelazzo
Coordenador de Ensino Mdio e Tcnico
Almrio Melquades de Arajo
Coordenador de Formao Inicial e Educao
Dados Internacionais de Catalogao na Publicao (CIP) Continuada
Celso Antonio Gaiote
D357 Coordenador de Infraestrutura
Della Croce Filho, Ralfe Rubens Goldman
Informtica, programao de computadores / Ralfe Della Croce Coordenador de Gesto Administrativa e
Filho, Carlos Eduardo Ribeiro ; revisor Srgio Furgeri ; coordenador Financeira
Luis Eduardo Fernandes Gonzalez. -- So Paulo : Fundao Padre Anchieta, 2010
Armando Natal Maurcio
(Manual de Informtica Centro Paula Souza, v. 4) Coordenador de Recursos Humanos
Elio Loureno Bolzani
ISBN 978-85-61143-46-6
Assessora de Avaliao Institucional
1. Sistemas operacionais (Computadores) 2. Softwares de aplicao Roberta Froncillo
I. Ribeiro, Carlos Eduardo II. Furgeri, Srgio, revisor III. Assessora de Comunicao
Gonzalez, Luis Eduardo Fernandes, coord. IV. Ttulo
Gleise Santa Clara
CDD 005.43 Procurador Jurdico Chefe
Benedito Librio Bergamo
Sumrio
21 Captulo 1 3.3. Formatao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
lgica de programao 3.4. Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Capa: Luiz Felipe do
1.1. Fluxograma e pseudocdigo . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.5. Cores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Nascimento, aluno de uma
Etec do Centro Paula Souza.
1.2. Tipos de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.6. Tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Foto: Eduardo Pozella
Edio: Deise Bitinas
1.3. Constantes e variveis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.7. Imagens ................................................ 77
1.4. Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.8. Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
1.5. Comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.9. Formulrios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
1.6. Vetor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.10. XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
1.7. Matriz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
1.8. Programao modular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 93 Captulo 4
lgica de programao aplicada
49 Captulo 2 linguagem Java
estrutura de dados 4.1. A plataforma de desenvolvimento . . . . . . . . . . . . . . . . . . . . . 96
arPessoa()
Sumrio
4.2. Origem da orientao a objetos . . . . . . . . . . . . . . . . . . . . . . 100 4.5.6.1.1. Mtodo get . . . . . . . . . . . . . . . . . . 114
4.2.1. Abstrao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 4.5.6.1.2. Mtodo set . . . . . . . . . . . . . . . . . . 115
4.3. UML (Unified Modeling Language) . . . . . . . . . . . . . . . . . . . . 101 4.5.7. Representao do encapsulamento
4.4. Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 em objeto do tipo Pessoa . . . . . . . . . . . . . . . . . . . . . . 115
4.5. Orientao a objetos (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.5.8. Viso geral da classe
4.5.1. Componentes elementares. . . . . . . . . . . . . . . . . . . . . 104 Pessoa e sua estrutura . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.5.1.1. Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 4.6. Entrada e sada de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4.5.1.1.1. Atributos . . . . . . . . . . . . . . . . . . . . . 105 4.6.1. Declarao import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4.5.1.1.2. Mtodos. . . . . . . . . . . . . . . . . . . . . . 105 4.6.2. Apresentao de dados (sada). . . . . . . . . . . . . . . . . 117
4.5.1.1.3. Detalhando o 4.6.3. Leitura de dados (entrada) . . . . . . . . . . . . . . . . . . . . . 119
diagrama de classe . . . . . . . . . . . 105 4.7. Assinatura de mtodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
4.5.1.1.4. Codificao da 4.7.1. Retorno de valor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
classe Pessoa . . . . . . . . . . . . . . . . . 106 4.7.2. Passagem de parmetro . . . . . . . . . . . . . . . . . . . . . . . . 121
4.5.1.1.5. Comentrios . . . . . . . . . . . . . . . . . 109 4.7.3. Retorno de valor
4.5.1.2. Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 e passagem de parmetro . . . . . . . . . . . . . . . . . . . . . . 121
4.5.2. Modificadores de acesso . . . . . . . . . . . . . . . . . . . . . . . 111 4.8. Estruturas e recursos da linguagem Java . . . . . . . . . . . . . . 122
4.5.2.1. Private ................................. 111 4.8.1. Palavras reservadas do Java . . . . . . . . . . . . . . . . . . . . 122
r
ro
4.9.1. Herana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 4.13.1. JDBC (Java Database Connectivity) . . . . . . . . . . . 172
Er
th
le
4.9.2. Sobrecarga de mtodo (overload) . . . . . . . . . . . . . 142 4.13.2. Implementao do acesso a dados . . . . . . . . . . . . 174
ea
ab
D
ow
ad
4.9.3. Sobrescrita de mtodo (override). . . . . . . . . . . . . . 145 4.13.2.1. Classe java.sql.Statement . . . . . . . . . . . . . 176
hr
re
T
Th
4.9.4. Classes e mtodos abstratos . . . . . . . . . . . . . . . . . . . 147 4.13.2.2. A classe PreparedStatement . . . . . . . . . 176
or
4.9.5. Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 4.13.2.3. A classe CallableStatement . . . . . . . . . . 176
rr
TE
4.9.6. Polimorfismo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 4.13.3. Incluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
AW
u
Inp
4.9.6.1. De mtodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 4.13.4. Alterao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
n
tio
on
p
4.9.6.2. De classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 4.13.5. Excluso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
ce
ti
p
n
Ex
ce
io
4.9.6.3. De interface . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 4.13.6. Listagem geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Ex
pt
ce
O
e
nt
Ex
4.10. Padres de desenvolvimento de sistemas . . . . . . . . . . . 154 4.13.7. Pesquisa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
oi
ds
lP
n
un
ul
4.10.1. Programao em trs camadas . . . . . . . . . . . . . . . . 154
tio
N
Bo
ep
f
4.10.2. MVC (Model, View, Controller) . . . . . . . . . . . . . . 154
O
xc
ut
eE
O
im
x
de
nt
In
Ru
ay
n
rr
tio
A
ep
xc
tE
Sumrio
185 Captulo 5 6.3.4. Operadores de incremento e decremento . . . .203
visual Studio 2008 6.3.5. Operadores lgicos . . . . . . . . . . . . . . . . . . . . . . . . . . . .204
8.1.7. Estruturando uma pgina ASP.NET . . . . . . . . . . . . 248 9.4.2. Exemplo genrico de conexo . . . . . . . . . . . . . . . . . 267
8.1.7.1. HTML Server Controls . . . . . . . . . . . . . . . . 248 9.4.2.1. Implementando a leitura de dados . . . .268
8.1.7.2. Web Server Controls . . . . . . . . . . . . . . . . . 249 9.4.3. Conexo com VB.NET . . . . . . . . . . . . . . . . . . . . . . . . . 269
8.1.7.3. Validation Server Controls . . . . . . . . . . . . 249 9.4.3.1. Base de dados . . . . . . . . . . . . . . . . . . . . . . . . . . 269
8.2. Eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 9.4.3.2. Criando o Form . . . . . . . . . . . . . . . . . . . . . . . 270
8.3. HTML Server Controls e Web Server Controls . . . . .250 9.4.3.3. Inserindo o cdigo . . . . . . . . . . . . . . . . . . . . . 270
8.3.1. HTML Server Controls . . . . . . . . . . . . . . . . . . . . . . . . .250 9.4.3.4. Utilizando uma DataTable . . . . . . . . . . . . . 271
8.3.2. Web Server Controls . . . . . . . . . . . . . . . . . . . . . . . . . . 251 9.4.3.4.1. Visual do DataGrid . . . . . . . . . . 274
8.4. Sesses em ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 9.4.3.5. Travando colunas . . . . . . . . . . . . . . . . . . . . . . 274
8.4.1. Recuperando sesso em outra pgina 9.4.4. Utilizando um DataView . . . . . . . . . . . . . . . . . . . . . . . . 275
por meio de um evento . . . . . . . . . . . . . . . . . . . . . . . .254 9.4.5. Conectando com ASP.NET . . . . . . . . . . . . . . . . . . . . 277
Lgica de
programao
Fluxograma e pseudocdigo
Tipos de dados
Constantes e variveis
Operadores
Comandos
Vetor
Matriz
Programao modular
InFoRmtICa 4 CaPtulo 1
Quadro
Algoritmo
com os passos
necessrios
da latinha.
Quadro
A
Algoritmo
detalhado
lgica computacional um dos primeiros passos para quem da latinha.
pretende entrar no mundo da computao. Normalmente,
no percebemos sua aplicao para resolver diferentes nveis
de problemas nem sua relao com outras reas da cincia. Isso porque,
em geral, a lgica computacional est associada lgica matemtica
(FORBELONE, 2005). um recurso que permite a criao de alter-
nativas viveis e tecnicamente corretas, eficientes e rpidas. Antes de 1 - Pegar o refrigerante 2 - Segurar o lacre com 3 - Remover o lacre.
resolver um problema, no entanto, temos de saber interpret-lo. Assim, com a mo esquerda. a mo direita.
evitam-se resultados indesejveis ou desvios de percurso, da mesma ma-
neira que surge a oportunidade de eliminar eventuais dvidas, definin-
do o melhor algoritmo, que pode ser o pseudocdigo ou o f luxograma.
22 23
InFoRmtICa 4 CaPtulo 1
Entre os diferentes smbolos que constituem a estrutura de um fl uxograma, os Aproveitando o mesmo exemplo da latinha de refrigerante, vamos reescre-
mais comuns esto includos na tabela 1. ver os passos lgicos por meio de um fluxograma (figura 1).
tabela 1
SIMBOLOGIA DO FLUXOGRAMA
SMBOLO NOME E FUNO Incio
NOME = TERMINAL
FUNO = Indica INCIO ou FIM
Incio Fim
de um processamento Pegar a
latinha
NOME = PROCESSAMENTO
FUNO = Denio de variveis ou Remover o Eliminar o
processamentos em geral (Clculos) lacre lacre
Abrir a
tampa
NOME = ENTRADA MANUAL
FUNO = Entrada de dados via
teclado, idntico ao comando LEIA Segurar o Posicionar a
Voltar a lata
na posio
lacre lata na boca
Tomar o original
NOME = DISPLAY
refrigerante
FUNO = Sada de Dados, mostra
um texto e/ou varivel na tela,
idntico ao comando ESCREVA
Pegar o Inclinar a Ingerir o
refrigerante lata lquido
NOME = DOCUMENTO
FUNO = Sada de Dados, envia
um texto e/ou varivel para a impressora,
usado em relatrios. Idntico ao
Figura 1
comando IMPRIMA Existem muitos softwares destinados construo de fl uxogramas, mas poss-
Fluxograma
vel faz-los tambm com o uso do Microsoft Word. Os exemplos desse material
dos passos
NOME = DECISO foram elaborados pelo Microsoft Visio.
lgicos.
FUNO = Deciso a ser tomada,
retornando verdadeiro ou falso, Pseudocdigo
idntico ao comando SE
Os algoritmos so desenvolvidos em uma linguagem denominada pseudoc-
NOME = CONECTOR digo ou, como preferem alguns autores, portugus estruturado. Podem ser
FUNO = Desvia o uxo para uma outra criados sem o formalismo das linguagens de programao, mas obedecem a
pgina, sendo interligados pelo conector uma regra bsica de estruturao: cabealho, declarao e instrues, confor-
me o seguinte modelo:
NOME = ENTRADA/SADA
FUNO = Leitura de gravao Programa nome_do_programa
Ttulo do Algoritmo
de arquivos Declare
{declarao de variveis}
NOME = SETA
FUNO = Indica a direo do uxo Incio Declaraes de
variveis
{instrues e comandos}
NOME = LOOP Comandos e
Fim
FUNO = Realiza o controle de loop instrues ordenados
de forma lgica
24 25
InFoRmtICa 4 CaPtulo 1
Um algoritmo deve ter como caracterstica um nmero fi nito de passos, des- de sua varivel ou constante e no utilize espao em branco ou caracteres especiais,
critos de forma precisa e que possam ser executados em um determinado tem- com exceo do underline (_). Exemplos:
po. Pode permitir zero ou mais entradas de dados e gerar sadas de dados
refi nados. Para construir um algoritmo, preciso usar informaes claras e nome Joozinho
objetivas, geralmente compostas de um verbo ou de uma frase direta.
idade 0
1.2. tipos de dados
minha_idade 15
A manipulao de dados em um algoritmo ou at mesmo nas linguagens
de programao s possvel com base em algumas regras fundamentais pag_final R$ 1.479,00
para a definio dos tipos de dados. preciso diferenciar um dado com
nmeros ou outros tipos de caracteres.
No pseudocdigo (fi gura 2), as constantes ou variveis devero estar relaciona-
das com os seus respectivos tipos de dados:
numricos inteiros
Esse tipo de dado representado por nmeros no fracionados positivos ou ne- Figura 2
gativos, como: 10, 50, -56, -1.000 etc. Programa variveis Estrutura de
pseudocdigo.
Declare Incio
numricos utuantes
So representados por nmeros fracionados positivos ou negativos, por exemplo: nome como caractere
10.5, -45.78, 178.67 etc.
nome como caractere
idade como inteiro idade como inteiro
salrio como utuante
Caracteres ou literais
salrio como flutuante
o maior conjunto de dados. So representados por letras, nmeros, sm-
bolos e espao em branco, sempre entre aspas. Exemplo: cadeira, 100, Incio
nome Joozinho
R$ 10.00, 11h00 etc. idade 15
nome Joozinho salrio 1500
atribuio e declarao
Atribuir um valor qualquer para uma constante ou uma varivel requer
1.4. operadores
o uso do sinal de ou =. Isso quer dizer que o valor na frente do si- Os operadores so utilizados pelos pseudocdigos. O mesmo acontece com as
nal ser armazenado no elemento anterior ao sinal de atribuio. Veja: linguagens de programao, cuja funo realizar as diferentes operaes de
aritmtica e de lgica em um ambiente computacional.
nome Joozinho idade 10 pi 3.14
aritmticos
Independentemente do tipo de dado adotado caracteres variados (Joozinho), Esse grupo tem como responsabilidade realizar as operaes aritmticas
nmeros inteiros (10) ou fl utuantes (3.14) , o processo de atribuio o mesmo. (tabela 2) de um pseudocdigo. As operaes sero realizadas de acordo
Mas a declarao requer cuidado. Por isso, procure escolher o nome da varivel de com a prioridade, ou seja, parnteses, potncia, multiplicao, diviso e,
acordo com o tipo de dado que ser recepcionado, inicie sempre com letras o nome por ltimo, soma e subtrao.
26 27
InFoRmtICa 4 CaPtulo 1
tabela 2 Para compreender o processo lgico de dados, observe as tabelas abaixo, mos-
trando os valores originais e os resultados adquiridos a partir dos operadores
OPERADORES ARITMTICOS lgicos. Esse tipo de quadro conhecido como Tabela Verdade (tabela 5).
+ adio de nmeros utuantes ou inteiros
+ Concatenao de valores literais (caracteres) tabela 5
- Subtrao de nmeros utuantes ou inteiros
NO // NOT
* multiplicao de nmeros utuantes ou inteiros
Valor Entrada 01 Resultado
/ Diviso de nmeros utuantes e inteiros
Verdadeiro Falso
** Potncia de nmeros utuantes e inteiros chave 1 chave 2
Falso Verdadeiro
28 29
InFoRmtICa 4 CaPtulo 1
Comando leia()
O pseudocdigo a seguir representa um exemplo mais completo, assim como o
fl uxograma, na sequncia (fi gura 4): Ao contrrio do comando Escreva(), o Leia() permite a insero de dados pela
interao com o usurio. Eles sero armazenados em variveis devidamente de-
Programa exemplo_escreva fi nidas (fi gura 5).
Figura 5
Declare
Leia(nome) Entrada de Dados.
nome como caractere
Leia(nota1)
Entrada de dados
mdia, nota1, nota2 como flutuante
Leia(nota2)
Inicio
Leia(temp)
nome Fulaninho
nota1 10.0 Ao realizar uma entrada de dados, o ideal que o usurio seja notifi cado sobre
o tipo de informao que dever ser inserida. Veja como:
nota2 2.0
Programa exemplo_leia
media (nota1 + nota2)/2
Declare
Escreva(Sua nota final :)
nome como caractere
Escreva(mdia)
mdia, nota1, nota2 como flutuante
Fim
Incio
Escreva(calculando a mdia)
Figura 4
Fluxograma Escreva.
Escreva(Qual o seu nome?)
Incio
Leia(nome)
Fim
30 31
InFoRmtICa 4 CaPtulo 1
Observe na fi gura 6, a mesma representao, no formato de fl uxograma: No prximo exemplo, para estabelecer a condio vamos utilizar os operadores
lgicos j vistos.
Fim-Se
Figura 6
Fluxograma Leia.
Estrutura de deciso Se...Fim-Se
Os algoritmos, assim como as linguagens de programao, executam as ativi- No Sim
dades de forma sequencial. Mas, s vezes, devemos defi nir alguns desvios de
acordo com as condies estabelecidas no processo de execuo do algoritmo
conforme a interferncia do usurio. Para que isso ocorra, preciso executar
o comando Se(), que permite realizar desvios condicionais com base em testes
lgicos. A estrutura dos algoritmos composta por um teste condicional e por
um comando ou conjunto de comandos a serem executados a partir desse teste,
mas somente quando o resultado for verdadeiro (fi gura 7). Como fi caria a repetio do teste com a varivel mdia.
Fim-Se
32 33
InFoRmtICa 4 CaPtulo 1
Figura 9
Vamos organizar todo o pseudocdigo, apresentando-o, tambm, no formato
Exemplo de teste.
de fl uxograma (fi gura 9).
nome como caractere
Incio Calculando Qual o seu
mdia, nota1, nota2
a mdia nome?
como flutuante
Programa exemplo_teste
Sim
Incio Aprovado
Fim do
Fim mdia >=7.00
Escreva(calculando a mdia) programa
Leia(nome)
Escreva(mdia) {comando(s)}
Escreva(Reprovado) {comando(s)}
Fim Fim-Selecione
34 35
InFoRmtICa 4 CaPtulo 1
Caso 3
Seno
Escreva(Nmero invlido)
36 37
InFoRmtICa 4 CaPtulo 1
Condio
comando(s)
Comando(s)
Repita (condio)
num 3 num 3
Enquanto (num <=6) Faa Repita
Escreva(num) // Sero visualizados os nmeros: 3,4,5 e 6. Escreva(num) // Sero visualizados os nmeros: 3,4,5 e 6.
num num + 1 num num + 1
Fim-Enquanto At que (x<=6)
vlr 0
vlr 0 Repita
Enquanto (vlr <=10) Faa Escreva(vlr) // Sero visualizados os nmeros: 0,2,4,6,8 e 10.
Escreva(vlr) // Sero visualizados os nmeros: 0,2,4,6,8 e 10. vlr = vlr + 2
vlr vlr + 2 At que (vlr <=10)
Fim-Enquanto
cont 3 cont 3
Enquanto (cont >=0) Faa Repita
Escreva(cont) // Sero visualizados os nmeros: 3,2,1 e 0. Escreva(cont) // Sero visualizados os nmeros: 3,2,1 e 0.
cont cont -1 cont cont -1
Fim-Enquanto At que (cont >=0)
38 39
InFoRmtICa 4 CaPtulo 1
Para realizar o acesso posio de um vetor, preciso identifi car a posio que
est entre os sinais de [], logo aps o nome do vetor:
tabela 7
Escreva(vet[3])
Vetor de Nmeros.
1 2 3 4 5 6 7 8 9 10
Leia(vet[2])
10 56 -4 60 2 6 99 3 1 -10
40 41
InFoRmtICa 4 CaPtulo 1
Programa matriz
1.7. matriz Declare
matriz como conjunto[1..2][1..2] de fl utuante
A matriz, ao contrrio do vetor, multidimensional. Nesse caso, os dados so lin, col como inteiro
armazenados ou lidos de acordo com a relao entre os eixos, e seu ndice re- Incio
presentado por dois ou mais valores. Uma matriz 3x2, por exemplo, possui trs Para lin = 1 At 2 Faa
linhas por duas colunas. Portanto, qualquer referncia aos dados dever apontar Para col = 1 At 2 Faa
para ambas as posies da forma matriz[2,1], indicando que a informao refe- Escreva(Linha, lin, da matriz)
renciada est na linha 2 e na coluna 1 da matriz. Grafi camente, tem-se: Escreva(Coluna, col, da matriz)
Escreva(Qual o valor?)
Leia(matriz[lin,col])
1 2 Fim-Para
Fim-Para
1 9 20 matriz 3x2
Escreva(Visualizando os dados da matriz:)
matriz[2,1] 2 10 6 Para lin = 1 At 2 Faa
3 2 11 Para col = 1 At 2 Faa
Escreva(Linha, lin, da matriz)
Escreva(Coluna, col, da matriz)
Escreva(O valor :)
Para implementao, realizamos a declarao da matriz da seguinte forma: Escreva(matriz[lin, col])
Fim-para
Programa matriz Fim-para
Declare Fim
42 43
Informtica 4 captulo 1
Outro exemplo:
Programa procedimento
Declare
Programa soma op como caractere
Declare Procedimento bomdia
a,b,c como conjunto[1..8][1..4] de flutuante Escreva(Bom dia!!!!!)
ln, cl como inteiro Fim-procedimento
Incio Incio
Para ln = 1 At 8 Faa Escreva(Deseja ver nossa mensagem? (S/N))
Para cl = 1 At 4 Faa Leia(op)
Escreva(Digite o valor para a Matriz A:) Se op = S Ou op = s Ento
Leia(a[ln, cl]) bomdia // chamada ou procedimento
Escreva(Digite o valor para a Matriz B:) Fim-Se
Leia(b[ln, cl]) Fim
Escreva(Valores somados para a Matriz C:)
c[ln, cl] = a[ln, cl] + b[ln, cl]
Escreva(c[ln, cl]) Variveis locais ou globais
Fim-Para
Fim-Para As variveis locais so consideradas apenas em uma sub-rotina (procedimento
Fim ou funo). Dessa forma, so desconhecidas pelo algoritmo principal, ao contr-
rio das globais, que so consideradas por todo o algoritmo.
44 45
Informtica 4 captulo 1
Funo
Programa quadrado
Uma funo tem as mesmas caractersticas estruturais de um procedimento, no
Declare
que diz respeito a fatores como funcionalidade, visualizao de variveis e cha-
op como caractere
madas. Mas a sua principal vantagem a possibilidade de retorno de valores em
Procedimento quadrado
tempo real. Isso quer dizer que, quando chamamos determinada funo, pode-
Declare
mos receber valores em tempo real, armazenando o resultado em uma varivel.
lado, rea como inteiro
Escreva(Digite um nmero inteiro:)
Leia(lado) Funo nome-da-funo ( parmetros:tipo ) : <tipo-de-retorno>
rea lado * lado Declare {variveis}
Escreva(A rea do quadrado :, rea) {comando ou bloco de comandos}
Fim-Procedimento Fim-Funo
Incio
Escreva(Gostaria de saber a rea de um quadrado (S/N)?)
Diferentemente do procedimento, preciso fazer a identificao do tipo de valor
a ser retornado.
Leia(op)
Se op = S Ou op = s Ento
quadrado
Programa quadrado
Fim-Se
Declare
Fim
op como caractere
lado como inteiro
Passagem de parmetro
Funo quadrado (ld como inteiro): inteiro
A passagem de parmetros por valor utilizada para que as sub-rotinas possam Declare
receber informaes e realizar qualquer tipo de manipulao fora do pseudoc- rea como inteiro
digo principal. rea ld * ld
Fim-Funo
Incio
Programa quadrado Escreva(Gostaria de saber a rea de um quadrado (S/N)?)
Declare Leia(op)
op como caracter Se op = S Ou op = s Ento
lado como inteiro Escreva(Digite o valor:)
Leia(lado)
Procedimento quadrado (ld como inteiro) Escreva(A rea do quadrado :)
Declare Escreva(quadrado(lado))
area como inteiro Fim-Se
rea ld * ld
Escreva(A rea do quadrado :, area) Fim
Fim-Procedimento
Incio
Escreva(Gostaria de saber a rea de um quadrado (S/N)?)
Leia(op)
Se op = S Ou op = s Ento
Escreva(Digite o valor:)
Leia(lado)
quadrado(lado)
Fim-Se
Fim
46 47
Captulo 2
Estrutura de dados
Lista encadeada
Lista circular
Lista duplamente encadeada
Pilhas
Filas
rvores
InFoRmtICa 4 CaPtulo 2
vazio II NULL
o e ao desenvolvimento de modelos para a resoluo de problemas. Na prtica, a um dispositivo nulo). Para a criao de uma lista, considera-se o primeiro pon-
signifi ca criar representaes concretas que podem atuar sobre modelos. teiro existente. Uma lista vazia deve ser criada com o ponteiro indicando NULL,
permitindo inseres no fi nal. Essa lista deve ser alocada em uma posio de
memria, com encadeamento para o prximo elemento (fi gura 16).
2.1. lista encadeada
Retirar um elemento da lista um processo um pouco mais complexo, pois
Um espao de memria reservado para os dados, quando so inseridos em uma podemos encontrar diferentes situaes, como eliminar o primeiro elemento da
lista encadeada. Ento, o espao ocupado por uma lista, na memria, expresso lista ou um elemento intermedirio (fi gura 17).
pela quantidade de elementos contidos ali dentro. Para que se possa percorrer
todos os elementos, deve-se armazenar junto a cada um deles um ponteiro Outras funes agregadas s listas so: busca de elementos e verifi cao para
que indique o elemento seguinte (fi gura 15). saber se ela est vazia ou no. Figura 17
Eliminao de um elemento.
Figura 15
Lista encadeada.
50 51
InFoRmtICa 4 CaPtulo 2
Figura 18
Lista circular.
25 40
INFO 002 II posio 02 15 15 15
10
tabela 8
2.4. Pilhas Push e pop
em uma pilha.
A pilha uma estrutura bem simples, muitas vezes encontrada dentro do hard-
2.2. lista circular ware. A ideia acessar o primeiro elemento a partir do topo da pilha. Assim, um
novo elemento inserido na pilha vai direto para o topo e, logicamente, o nico
Em uma lista circular o ltimo elemento dever apontar para o primeiro (fi gura que pode ser retirado. Portanto, o primeiro que sai o ltimo que entrou. Te-
18). Para percorrer a lista preciso visitar todos os seus elementos, a partir de um mos, nesse caso, o LIFO (do ingls last in, fi rst out, ou ltimo dentro, primeiro
ponteiro inicial, at chegar a ele novamente. Caso o ponteiro inicial seja NULL, fora). H duas operaes bsicas, para trabalhar com as pilhas: push (empilhar)
a lista ser considerada vazia. e pop (desempilhar) (tabela 8).
52 53
InFoRmtICa 4 CaPtulo 2
Figura 20 Figura 22
rvore e Esquema da
seus ns. rvore Binria.
R raiz
A B C D E sae sad
2.6. rvores Na rvore binria cada n tem zero, um ou, no mximo, dois fi lhos. Ento,
possvel defi nir uma rvore binria como vazia ou um n raiz com duas subr-
Os tpicos anteriores representam a disposio de dados lineares. As rvores, vores uma na direita (sad) e outra na esquerda (sae) (fi gura 22).
por sua vez, permitem que os dados sejam dispostos de forma hierrquica, como
uma estrutura de diretrios. Toda rvore possui um n r, denominado raiz. rvore genrica
Os demais ns so identifi cados como internos ou fi lhos (fi gura 20).
Na rvore binria h restrio quanto ao nmero de ns: no mximo dois. Esse
rvores binrias limite no acontece nas rvores genricas (fi gura 23). Figura 23
rvore genrica.
Um bom exemplo de rvore binria so as expresses matemticas, as quais nos
permitem distribuir os operadores e os operandos. Por exemplo, a expresso
((1+2)*(5*3))-2 (fi gura 21).
Figura 21
rvore binria.
* 2
+ *
1 2 5 3
54 55
Captulo 3
Criao de
pginas Web
Identicao do documento
Estrutura do documento
Formatao
Texto
Cores
Tabelas
Imagens
Links
Formulrios
XML
Informtica 4 captulo 3
HTML 4.01 Transacional: possui toda a qualidade do HTML 4.01. Porm DICA
usa elementos desaprovados ou obsoletos. Para validar o tipo de
documento que est
<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional// sendo desenvolvido,
ENhttp://www.w3.org/TR/html4/loose.dtd> utilize o validador do
W3C no link: http://
O
validator.w3.org/.
HTML 4.01 Frameset: utiliza molduras (FRAMES) e tambm transitrio.
HTML (iniciais da expresso em ingls HyperText Markup
Language ou Linguagem de Marcao de Hipertexto) vem <!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Frameset//
sendo utilizado para o desenvolvimento de pginas da internet ENhttp://www.w3.org/TR/html4/frameset.dtd>
desde a sua concepo no Conselho Europeu de Pesquisas Nucleares, o CERN
(em ingls, European Council for Nuclear Research), em 1991. Divulgada em
dezembro de 1999, a ltima especificao do W3C (Word Wide Web Con- HTML 4.01 Strict: segue padres exigidos pelo W3C, portanto, cumprindo
sortium ou Consrcio da Rede de Alcance Mundial) recomenda a verso 4.01 as especificaes.
como padro de desenvolvimento do HTML, que sofreu nova reformulao
com base na estrutura de documentos XML (Extensible Markup Language). <!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01//EN
Surgiu, assim, o XHTML (eXtensible HyperText Markup Language ou Lin- http://www.w3.org/TR/html4/strict.dtd> O W3C
guagem de Marcao de Texto Extensvel), considerada o novo padro de de- Fundado em 1994,
senvolvimento web. o W3C (World Wide
Da mesma maneira como acontece com o HTML, existem tambm especifica- Web Consortium)
Pgina de HTML do es DOCTYPE para os documentos XHTML. ou Consrcio da
Centro Paula Souza. Rede Mundial de
Computadores)
XHTML 1.0 Transacional: utiliza recursos obsoletos.
formado por empresas
de tecnologia
<!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//
de diferentes partes
ENhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
do mundo
que trabalham
para criar padres
XHTML 1.0 Frameset: usa molduras (FRAMES) e tambm transitrio. e diretrizes para
a interpretao de
<!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Frameset// contedos da web.
ENhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd> O grupo desenvolve
protocolos, promove
fruns abertos, entre
XHTML 1.0 Strict: segue padres exigidos pelo W3C, ou seja, cumpre as es- outras aes. Mais
pecificaes. informaes podem
ser obtidas no site
<!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Strict//EN http://www w3c.br.
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd>
O documento HTML ou XHTML recebe as extenses .htm ou .html, associa-
das aos navegadores.
58 59
Informtica 4 captulo 3
3.2. Estrutura do documento utilizar o CSS (Cascading Style Sheet ou Estilo Pginas em Cascata), para fazer
a formatao correta do documento. A insero dessa formatao realizada por
Para indicar as marcaes do documento, denominadas tag, devemos utilizar os meio da tag <style> e poder ser aplicada em trs nveis diferentes:
sinais de < e >. Para que ele seja validado, deve ter a seguinte estrutura bsica:
Nvel Local quando h necessidade de formatar uma tag especial.
60 61
InFoRmtICa 4 CaPtulo 3
Figura 26
No exemplo anterior, a tag <link> identifi ca o documento a ser adicionado ao
Formatao na tag.
documento principal, no caso, o estilo.css. Veja o cdigo a seguir:
/* CSS Document */
body {background:skyblue}
Classes e identificadores
Formatao de nvel geral
As classes permitem que vrios estilos sejam aplicados na mesma tag. Dessa
A tag <style> deve fi car no incio do documento e conter todos os parmetros forma, devemos colocar o class junto tag.
de formatao.
<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01
<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN
Transitional//EN http://www.w3.org/TR/html4/loose.dtd>
http://www.w3.org/TR/html4/loose.dtd> <html>
<html> <head>
<head> <meta http-equiv=Content-Type content=text/html; charset=utf-8>
<meta http-equiv=Content-Type content=text/html; <title>Utilizao de Classes</title>
charset=utf-8> <style type=text/css>
<title>Formao No Documento</title> p.um {background:blue;
<style type=text/css> color:yellow}
body {background:skyblue} p.dois {background:yellow;
</style> color:blue}
</head> </style>
<body> </head>
Minha Primeira Pgina em HTML <body>
</body> <p class=um> Minha pgina, usando a classe um </p>
</html> <p class=dois> Minha pgina, usando a classe dois </p>
</body>
Formatao de nvel global </html>
Nesse caso, devemos criar dentro do documento HTML um link (cdigo abai-
xo) para identifi car um documento de formatao CSS. Para a tag <p>, foram aplicados dois tipos diferentes de formatao apenas
com a troca do nome da classe (um e dois). Veja o resultado na fi gura 27.
<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01
Transitional//EN Usamos os identifi cadores quando no queremos vincular a formatao a
http://www.w3.org/TR/html4/loose.dtd> uma determinada tag. Os identifi cadores so nomes defi nidos pelos pro-
<html> gramadores, geralmente associados ao estilo de formatao a ser utilizada.
<head>
<meta http-equiv=Content-Type content=text/html; Figura 27
charset=utf-8> Classes em CSS.
<title>Formatao com Arquivo Externo</title>
<link href=estilo.css rel=stylesheet type=text/css>
</head>
<body>
Minha Primeira Pgina em HTML
</body>
</html>
62 63
Informtica 4 captulo 3
Figura 28
Identificador. <!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01
Transitional//EN
http://www.w3.org/TR/html4/loose.dtd>
<html>
<head>
<meta http-equiv=Content-Type content=text/html;
charset=utf-8>
<title>Formatao de Texto</title>
3.4. Texto <style type=text/css>
#titulo {font-size:12pt}
A insero de texto realizada diretamente no corpo do documento, geralmente #texto1 {font-size:12px}
utilizando a tag <p> </p> para identificar o incio e o fim do pargrafo respec- #texto2 {font-size:10px}
tivamente. Por exemplo: </style>
</head>
<body>
<p> Minha Primeira Pgina HTML </p> <div id=titulo>Formatando Fontes </div>
<div id=texto1>Texto usando a primeira formatao </div>
<div id=texto2>Texto usando a segunda formatao </div>
</body>
Outra tag que dever ser levada em considerao a <br>, que realiza a quebra </html>
automtica do texto para outra linha.
64 65
Informtica 4 captulo 3
Para o identificador ttulo, a referncia est em pontos. E para os demais, em <!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01
pixel. Observe que os dois primeiros identificadores tm o mesmo tamanho,
Transitional//EN
mas o resultado final mostra diferenas (figura 30).
http://www.w3.org/TR/html4/loose.dtd>
Figura 30 <html>
Font-Size. <head>
<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>
A expresso acessibilidade <title>Formatao de Texto</title>
refere-se possibilidade <style type=text/css>
de qualquer pessoa, #titulo {font-size:12pt;
independentemente de suas
capacidades fsico-motoras
font-family:Geneva, Arial, Helvetica, sans-serif} Dica
#texto1 {font-size:12px; Utilize a tag
e perceptivas, culturais
font-family:Arial, Helvetica, sans-serif} <div> quando for
ou sociais, usufruir dos
Font-Family #texto2 {font-size:10px; trabalhar com os
benefcios de uma vida em
identificadores
sociedade. Acessibilidade preciso escolher com cuidado o tipo de letra a ser utilizado. As fontes menos co- font-family:Times New Roman, Times, serif}
e a tag<span>
na web, ou e-acessibilidade, muns podem at ser bonitas, mas tambm so as que mais tm chance de provocar .estilo {font-style: italic; para as classes.
refere-se especificamente a desconfigurao visual de um projeto. Portanto, procure utilizar fontes-padro font-size:20px}
ao direito de ingressar na e, de preferncia, de boa visualizao, seguindo as normas de acessibilidade. </style>
rede sem qualquer tipo
de barreira arquitetnica,
</head>
Um recurso interessante para a definio das fontes a criao de uma lista. Se <body>
seja na arquitetura dos
no acharmos a primeira fonte listada, partimos para a segunda, e assim suces-
equipamentos e programas, <div id=titulo>Formatando <span class=estilo>Fontes </span></div>
sivamente. Se no encontrarmos nenhuma fonte, a alternativa recorrer fonte-
na linguagem adotada ou <div id=texto1>Texto usando a primeira formatao </div>
padro do navegador. Nesse caso, o resultado ser outro (figura 31).
no visual das informaes. <div id=texto2>Texto usando a segunda formatao </div>
Dentro desse conceito surgiu </body>
o WAI (Web Accessibility
<style type=text/css> </html>
Initiative ou Iniciativa para
Acessibilidade na Rede), #titulo {font-size:12pt;
um projeto internacional font-family:Geneva, Arial, Helvetica, sans-serif}
criado por grupos de pessoas #texto1 {font-size:12px; A figura 32 mostra o resultado final.
dedicadas a desenvolver font-family:Arial, Helvetica, sans-serif}
condies especficas para #texto2 {font-size:10px; Figura 32
que todos tenham acesso font-family:Times New Roman, Times, serif} Font-Style.
internet (ambiente, </style>
equipamento, navegador,
ferramentas etc.).
Figura 31
Font-Family.
Font-Weight
A expresso identifica o peso da fonte e notado quando utilizamos determi-
nada fonte em negrito. Para efeito de comparao, uma fonte normal tem valor
Font-Style 400 e seu negrito, 700. Mas esses valores podem sofrer mudanas conforme as
famlias de fontes escolhidas. Os valores mais comuns so 100, 200, 300, 400,
Um dos estilos mais usados o itlico. Aqui, vamos usar uma classe na tag 500, 600, 700, 800 e 900. Fazendo algumas modificaes no exemplo anterior,
<span> para a ativao. podemos obter outro resultado (figura 33).
66 67
Informtica 4 captulo 3
Figura 33
Font-Weight.
Text-Transform
Modifica a configurao da letra diferenciando caracteres maisculos de minsculos.
68 69
InFoRmtICa 4 CaPtulo 3
Figura 35
Existe outra opo chamada vertical-align, que faz o alinhamento no topo,
Text-Transform.
no meio e na parte de baixo da pgina. Pode ser adotada quando o texto
estiver dentro de uma tabela. Os parmetros so, respectivamente: top,
middle e bottom.
3.5. Cores
A utilizao de cores essencial para a criao de uma boa pgina na web.
Mas preciso ter cuidado para no exagerar. O importante adotar o con-
ceito de harmonia das tonalidades, que podem ser identifi cadas por meio das
text-align palavras em ingls: black, blue, red, skyblue, green, etc.
70 71
Informtica 4 captulo 3
3.6. Tabelas Outro efeito interessante pode ser obtido pela incluso de uma tabela dentro da
outra. Porm preciso observar a estrutura de cada uma delas para que no falte
A tabela um dos recursos mais usados para organizar as informaes em uma nenhuma tag (palavra-chave) (figura 38).
pgina. Mas para mont-la precisamos de uma srie de marcaes que nos per-
mitiro organizar a sua estrutura. <table border=1px>
<tr> <td>
TABLE Identifica o incio e o fim da tabela. <table border=1px>
<tr> <td> linha 01 - coluna 01 </td> </tr>
TR Linhas da tabela. <tr> <td> linha 02 - coluna 01 </td> </tr>
</table>
TD Colunas da tabela. </td>
<td>
TH Representa a coluna da tabela para ttulos, formatando o texto em <table border=1px>
negrito. <tr> <td> linha 01 - coluna 02 </td> </tr>
<tr> <td> linha 02 - coluna 02 </td> </tr>
A estrutura da tabela dever obedecer composio de suas linhas e colunas. O </table>
exemplo da figura 37 mostra uma tabela 2x2. </td></tr>
<tr> <td> coluna 01 </td>
<td> coluna 02 </td> </tr>
<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01
</table>
Transitional//EN
http://www.w3.org/TR/html4/loose.dtd>
<html> Figura 38
<head> Tabelas internas.
<meta http-equiv=Content-Type content=text/html;
charset=iso-8859-1>
<title>Tabela</title>
</head>
<body>
<table border=1px>
<tr> <td> linha 01 - coluna 01 </td>
Vamos associar a tabela aos recursos do CSS (Cascading Style Sheets ou Estilo Pginas
<td> linha 01 - coluna 02 </td> </tr> em Cascata), por meio das classes e dos identificadores, para formatao e alinhamen-
<tr> <td> linha 02 - coluna 01 </td> to do texto, alm de aplicao de cores utilizando o exemplo anterior (figura 39).
<td> linha 02 - coluna 02 </td> </tr>
</table> <!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01
</body> Transitional//EN
http://www.w3.org/TR/html4/loose.dtd>
</html>
<html>
<head>
Nesse primeiro momento de desenvolvimento interessante manter a borda da <meta http-equiv=Content-Type content=text/html;
tabela, porque facilita a verificao de sua estrutura (figura 37). charset=iso-8859-1>
<title>Tabela</title>
Figura 37 <style type=text/css>
Tabela 2x2. table {color: #0033CC}
td { text-align:center}
.coluna1 {background:#FF3300;
color:#FFFF00}
72 73
Informtica 4 captulo 3
#coluna2 {background: #33FF33; No <style>, a coluna (TD) est defina como 350px. Se analisarmos a estrutura
color: #6633FF} da tabela, veremos que ela constituda por duas colunas. Portanto, a tabela ter
</style> 700px (2 x 350px de cada coluna) de comprimento. Mas, se verificarmos sua
</head> definio, teremos 400px. O resultado final ser, ento, uma tabela de 400px.
<body>
<table border=1px>
<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01
<tr> <td>
<table border=1px> Transitional//EN
<tr> <td> linha 01 - coluna 01 </td> </tr> http://www.w3.org/TR/html4/loose.dtd>
<tr> <td class=coluna1> linha 02 - coluna 01 </td> </tr> <html>
</table>
</td> <head>
<td> <meta http-equiv=Content-Type content=text/html;
<table border=1px> charset=iso-8859-1>
<tr> <td id=coluna2> linha 01 - coluna 02 </td> </tr> <title>Tabela</title>
<tr> <td> linha 02 - coluna 02 </td> </tr>
</table> <style type=text/css>
</td></tr> table {text-align:center}
<tr> <td style=font-size:24px> coluna 01 </td> .coluna1 {width:200px}
<td style=font-size: 8px> coluna 02 </td> </tr>
coluna2 {width:400px}
</table>
</body> tr {height:60px}
</html> </style>
</head>
<body>
Figura 39
Tabela formatada. <table border=1 width=600px>
<tr> <td class=coluna1> linha 01 - coluna 01 </td>
<td class=coluna2> linha 01 - coluna 02 </td> </tr>
<tr> <td> linha 02 - coluna 01 </td> <td> linha 02 -
coluna 02 </td> </tr>
Tamanho da tabela, linha e coluna </table>
</body>
A identificao de medidas para a tabela pode ser feita a partir dela mesma, da
</html>
linha ou da coluna. preciso ter cuidado, no entanto, para que uma medida
obtida no anule a outra. Veja o seguinte cdigo:
<style type=text/css> Nesse exemplo, se somarmos as colunas, obteremos valores coerentes em relao
td {width:350px} ao tamanho da tabela (200+400=600px). Outro ponto importante a formata-
o do tamanho da coluna, que deve ser feita somente na primeira linha, pois as
</style>
demais seguiro essa definio (figura 40).
</head>
<body> Figura 40
Tabela tamanho.
<table border=1 width=400px >
<tr> <td> linha 01 - coluna 01 </td> <td> linha 01 - coluna 02 </td> </tr>
<tr> <td> linha 02 - coluna 01 </td> <td> linha 02 - coluna 02 </td> </tr>
</table>
74 75
Informtica 4 captulo 3
76 77
Informtica 4 captulo 3
Figura 42
Imagem distorcida. 3.8. Links
Os links so responsveis pela navegabilidade entre as pginas da web. Per-
mitem acesso dentro do prprio documento ou a documentos externos. Para
isso, utiliza-se a tag <a>, que significa ncora no existe um nome mais
sugestivo para navegao.
Na figura 43, podemos ver o Alt em ao, pois a primeira imagem no apareceu.
Figura 45
Link para o
Centro Paula Souza.
Organizar os documentos que seguiro para um servidor da web para ser pu-
blicados exige que as imagens sejam alocadas em uma nica pasta, que dever
ser referenciada na tag <img>. No exemplo, a pasta especificada Imagens.
78 79
Informtica 4 captulo 3
80 81
Informtica 4 captulo 3
Na entrada, vemos que a expresso seu nome aqui j est na caixa de texto,
que, apesar de ter tamanho 40, aceita somente 35 caracteres (figura 50).
82 83
Informtica 4 captulo 3
Figura 50
As informaes da caixa select so carregadas diretamente no formulrio.
Entrada tipo texto.
Com a utilizao, posterior, de linguagens de programao como ASP, PHP ou
Java, certamente isso acontecer dinmicamente (figura 53).
Figura 53
Caixa select.
Entrada de password
A entrada do tipo password esconde os caracteres digitados pelo usurio. Assim como
a entrada tipo text, os dados podem ser limitados e a janela, ajustada (figura 51).
Login <input type=text value= size=20 maxlength=20> Outro recurso a opo pr-selecionada, acessada por meio da expresso selec-
Senha <input type=password value= size=8 maxlength=8> </p> ted (selecionada) em um dos itens definidos por option.
Podemos observar que a janela foi definida para 5 linhas e 40 colunas (figura
52). Ateno: o texto inserido na figura apenas ilustrativo.
Figura 52
Textarea - Botes checkbox
Comentrio.
Os botes checkbox (que significa verificao da caixa) permitem que o usu-
rio escolha entre sim ou no. So usados normalmente para perguntas sim-
ples que oferecem apenas essas duas alternativas como resposta. Em proprieda-
Opo select des, podemos indicar a palavra name, que ser fundamental para o controle
dos dados para validao, assim como o checked (controlado) para opes j
Representa as caixas tipo combos, presentes na maioria das aplicaes, nas quais selecionadas.
uma srie de opes fica disponvel para o usurio.
<p> Possui carteira de Trabalho:
<p> Estado: <select name=cidade> <input type=checkbox name=carteira></p>
<option>So Paulo</option> <p> Possui meio de conduo prpria:
<option>Rio de Janeiro</option> <input type=checkbox name=conduzir></p>
<option>Distrito Federal</option> <p> Deseja receber nossas informaes por e-mail?:
</select> </p> <input type=checkbox name=conduzir checked> Sim, desejo.</p>
84 85
Informtica 4 captulo 3
Na opo referente recepo de e-mails, o boto checkbox foi previamente BUTTON (boto): no executa funo nenhuma, exceto quando programado.
assinalado (figura 55). Significa que preciso desenvolver um cdigo a ser relacionado com o boto.
Figura 55 No caso dos formulrios, os mais importante so os Reset e Submit, que sero
Botes checkbox. responsveis, respectivamente, pela eliminao das informaes e pelo envio de
dados. Mas preciso que o value (valor), seja informado, para que ocorra a
emisso da identificao padro.
Botes de Radio
O layout dos botes est na figura 57.
Os botes de Radio so semelhantes ao checkbox, porm permitem que mais de
uma opo seja fornecida ao usurio e apenas uma selecionada. O mais impor- Figura 57
tante manter o mesmo name nos controles, para que possa ser criado vnculo Botes Reset
entre eles. e Submit.
<p>Estado Civil:<br>
<input type=radio name=civil> Solteiro Formulrio
<input type=radio name=civil> Casado
At aqui apresentamos os elementos comuns para a elaborao de um formulrio.
<input type=radio name=civil> Outros </p> Agora, o momento de colocar todos os recursos em um nico documento.
<p>Jornada de Trabalho:<br>
<input type=radio name=trab checked> Manh
<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01
<input type=radio name=trab> Tarde
Transitional//EN
<input type=radio name= trab> Noite </p> http://www.w3.org/TR/html4/loose.dtd>
<html>
Na opo referente jornada de trabalho, assim como no checkbox, uma opo <head>
foi pr-selecionada (figura 56). <meta http-equiv=Content-Type content=text/html;
charset=iso-8859-1>
Figura 56 <title>Cadastro de Cliente</title>
Botes de Radio. <style type=text/css>
.titulo {color:#33CC33;
font-size:24px}
p {font-family:Verdana, Arial, Helvetica, sans-serif;
font-weight:600;
font-size:10px}
</style>
</head>
Botes <body>
Utilizamos os botes para indicar o tipo de ao a ser realizada com os dados do <span class=titulo>Cadastro de Cliente</span>
formulrio. Existem trs tipos de botes com funes especficas: <form action= method=post name=cadastro></form>
RESET (restabelecer): limpa todas as informaes do formulrio e no envia <p> Nome completo
mais nada. <input type=text value=seu nome aqui size=40 maxlength=35> </p>
<p> Login <input type=text value= size=20 maxlength=20>
SUBMIT (envio): manda as informaes de acordo com as condies do me- Senha <input type=password value= size=8 maxlength=8> </p>
thod (mtodo) e do action do formulrio.
86 87
Informtica 4 captulo 3
88 89
Informtica 4 captulo 3
Verificao Diretivas
A maioria dos editores que atuam na web pode criar documentos XML. Uma A identificao do documento deve aparecer logo no incio, o que facilitar a
maneira rpida para verificar se a estrutura do documento est correta abri-lo leitura por parte de outros aplicativos. Pode ser da seguinte forma:
por meio de um navegador web. Se o contedo no estiver totalmente visvel,
significa que h um erro que dever ser apontado pelo navegador. Se estiver tudo
<?xml version=1.0 ?>
certo, ser possvel visualizar claramente o contedo (figura 60).
90 91
Captulo 4
Lgica de programao
aplicada linguagem Java
A Plataforma de desenvolvimento
Origem da orientao a objetos
UML (Unied Modeling Language)
Eclipse
Orientao a objetos (1)
Entrada e sada de dados
Assinatura de mtodos
Estruturas e recursos da linguagem Java
Orientao a objetos (2)
Padres de desenvolvimento de sistemas
Interfaces grcas
Tratamento de excees
Conexo com bancos de dados
InFoRmtICa 4 CaPtulo 4
Figura 61
( esquerda)
*7 StarSeven,
o ponto de partida.
Figura 62
Logotipo do Java, com
J
a xcara estilizada.
FOTOS: DIVULGAO
e em 1983, PhD criador da linguagem B, em 1969, no Em 1983, Richie e Ken do Texas, EUA.
em Cincia da centro de pesquisas da AT&T Bell Thompson receberam Conhecido como o
Computao Labs, onde nasceram tecnologias o prmio Turing pelo pai da linguagem de
pela Universidade consideradas revolucionrias (desde cabos de telefone, transistores, desenvolvimento da teoria programao C++.
Carnegie Mellon, LEDs e lasers at linguagem de programao C e o sistema de sistemas operacionais
nos Estados operativo Unix, que hoje de propriedade do The Open Group, genricos e, especialmente, pela
Unidos. consrcio formado por empresas de informtica). implementao do sistema UNIX.
94 95
InFoRmtICa 4 CaPtulo 4
de computadores) se popularizou em 1993 e a Sun viu o Java ser utilizado para trinhas. Mas vamos nos ater ao ambiente de desenvolvimento JSE. O Java come-
adicionar contedo dinmico s pginas da web, como interatividade e animaes. ou na verso 1.0 (parece bvio, mas nesse caso a sequncia de verses no to
previsvel assim). Na verso 1.2, houve uma grande quantidade de atualizaes e
Alm de salvar o projeto Green, a expanso da World Wide Web deu incio correes e um signifi cativo aumento nas APIs (banco de recursos da linguagem,
ao desenvolvimento do Java como uma linguagem comercial. Essa mudana j que ser descrito mais adiante). Nessa etapa, a Sun resolveu trocar a nomenclatu-
trazia a ideia de estimular a interatividade entre os ambientes computacionais ra de Java para Java2, para diminuir a confuso entre Java e Javascript e divulgar
(mainframes, PCs etc.), os eletrodomsticos (que cada vez mais tm programa- as melhorias trazidas pela nova verso. Mas que fi que bem claro: no h verso
o embarcada), equipamentos eletrnicos (que evoluiriam para os dispositivos do Java 2.0. O 2 foi incorporado ao nome (exemplo: Java2 1.2). Depois, vieram
mveis) e a ento recm-nascida internet. o Java2 1.3 e 1.4. No Java 1.5, a Sun alterou novamente o nome para Java 5. At
a verso 1.4, existia uma terceira numerao (1.3.1, 1.4.1, 1.4.2 etc.), indicando
A Sun anunciou o Java formalmente durante uma conferncia, em maio de correes de erros e melhorias. A partir do Java 5, comearam a surgir diversas
1995. A linguagem chamou a ateno da comunidade de negcios, devido ao atualizaes, como Java 5 update 7, e Java6 1.6 update 16.
enorme interesse que a web despertava na poca. Alm disso, tambm tinha o
grande apelo da portabilidade: Write once, Run anywhere. 4.1.1. JRE (Java Runtime Environment)
Por isso, o Java passou a ser utilizado para desenvolver aplicativos corporativos Os ambientes de desenvolvimento Java contm um pacote (conjunto de softwa-
de grande porte e aprimorar a funcionalidade de servidores web (os computado- res que se complementam e interagem para determinada fi nalidade) chamado JRE
res que fornecem o contedo http://www.sis.pitt.edu/~mbsclass/hall_of_fame/ (Java Runtime Environment). Ele executado como um aplicativo do sistema ope-
images/thompson.jpg que vemos em nossos navegadores da internet). Essa lin- racional e interpreta a execuo de programas Java de forma performtica, segura
guagem tambm passou a ser usada no desenvolvimento de aplicativos para e em escalas. A JRE composta pela JVM (Java Virtual Machine, ou mquina
dispositivos mveis (telefones celulares, pagers e PDAs, por exemplo). virtual Java), por um conjunto de APIs (Application Programming Interface ou
interface de programao de aplicaes) e por alguns pacotes de desenvolvimento.
4.1. a plataforma de desenvolvimento
4.1.1.1. JVm (Java Virtual machine)
O Java e as tecnologias envolvidas na orientao a objetos tm uma caracterstica
peculiar que provoca confuso e dvidas entre a maioria das pessoas que come- A mquina virtual Java, traduo literal da sigla em ingls JVM, um programa
am a estudar o assunto. H um universo de siglas e acrnimos que permeiam que carrega e executa os programas desenvolvidos em Java, convertendo os byte-
todas as fases do desenvolvimento e tambm formam uma verdadeira sopa de le- codes (cdigo fonte pr-compilado)em cdigo executvel de mquina.
96 97
Informtica 4 captulo 4
A plataforma
A JVM responsvel pelo gerenciamento dos programas Java, medida Java Micro Editon
que so executados, simulam uma CPU e a memria (da o nome mquina indicada para
virtual). Graas JVM, os programas escritos em Java podem funcionar
aparelhos como
em qualquer plataforma de hardware e software que possua uma verso da
o Personal Digital
JVM. Ou seja, cada sistema operacional compatvel com o Java possui sua
Assistant.
prpria verso de JVM, tornando os programas desenvolvidos em Java inde-
pendentes em relao plataforma (hardware e software) onde esto sendo
executados. Configura-se, assim, uma das principais caractersticas da lin-
guagem Java: a portabilidade.
divulga
4.1.2. Ambientes de desenvolvimento
4.1.2.1. JSE (Java Standard Edition)
caes embarcadas, ou seja, aquelas que rodam em um dispositivo especfico.
Em portugus, a edio Java padro. Contm todo o ambiente necessrio para bastante indicada para aparelhos compactos, como telefone celular, PDA
a criao e execuo de aplicaes Java, incluindo a mquina virtual Java (JVM), (Personal Digital Assistant ou assistente digital pessoal), controles remotos etc.
ocompilador Java (JRE), um conjunto de APIs e outras ferramentas utilitrias. Contm configuraes e bibliotecas desenvolvidas especialmente para os port-
voltada para o desenvolvimento de aplicaes desktop e web de pequeno porte, exe- teis. Com esse instrumento, o desenvolvedor tem mais facilidade para lidar com
cutadas em PCs e em servidores. O JSE considerado o ambiente principal, j que as limitaes de processamento e memria do equipamento.
serviu de base para o desenvolvimento do JEE (Java Enterprise Edition ou edio Java
corporativa) e do JME (Java Micro Edition ou edio Java micro, voltada para micro- 4.1.2.4. JDK (Java Development Kit)
dispositivos). Por ser a plataforma mais abrangente do Java, a JSE a mais indicada
para quem quer aprender a linguagem. A JDK (ou JSDK Java Software Development Kit, kit de desenvolvimento de
programas Java) o ambiente completo de desenvolvimento Java. Existe um
4.1.2.2. JEE (Java Enterprise Edition) JDK para cada ambiente (JSE, JEE e JME). Esse kit deve ser instalado na m-
Servidores de
quina para possibilitar a criao de aplicaes Java.
aplicao so
programas que
A plataforma JEE (sigla em ingls, que literalmente significa edio empresa-
fornecem uma rial Java) contm bibliotecas que oferecem facilidades para a implementao 4.1.2.5. JSE: nosso foco
srie de recursos de softwares Java distribudos, tolerantes a falhas. Voltada para aplicaes mul-
para suporte ticamadas baseadas em componentes que so executados em um servidor de O JSE o mais indicado para os programadores iniciantes (ou mesmo veteranos
de aplicaes aplicaes, a JEE considerada, mais do que uma linguagem, um padro de de outras linguagens) e ser o foco de todos os exemplos deste captulo. Mas,
corporativas, desenvolvimento. Nela, o desenvolvedor de software segue obrigatoriamente apesar dos diferentes ambientes de desenvolvimento, trata-se da mesma lingua-
na web, de determinadas regras para que seu sistema possa se comunicar com outros de gem de programao. Portanto, a maioria dos recursos que sero abordados
forma segura e maneira automtica. Destina-se a aplicaes corporativas de grande porte e que comum e perfeitamente aplicvel a outros ambientes, principalmente no que diz
consistente. usam frequentemente o EJB (Enterprise Java Beans, um padro com estrutura respeito orientao a objetos.
de aplicaes distribudas) e servidores de aplicao. Outro recurso desse am-
biente so as aplicaes que rodam no lado servidor em uma arquitetura cliente/ 4.1.3. A portabilidade
servidor, conhecidas como servlets.
Em primeiro lugar, preciso entender o que um programa compilado e um
4.1.2.3. JME (Java Micro Edition) programa interpretado. Compilao o processo de converso do cdigo fonte
(texto escrito segundo as regras de determinada linguagem de programao)
A plataforma Java Micro Edition (literalmente, edio Java micro, voltada para para a linguagem de mquina (programa pronto para ser executado). Nesse pro-
microdispositivos) permite o desenvolvimento de softwares para sistemas e apli- cesso, so feitas vrias referncias (e consequentemente suas dependncias) em
98 99
InFoRmtICa 4 CaPtulo 4
100 101
InFoRmtICa 4 CaPtulo 4
modelar softwares. Muito utilizada em empresas que desenvolvem aplicaes www.java.sun.com/docs/codeconv/) que defi ne sua prpria conveno de nomen-
orientadas a objetos, tambm est presente em vrias publicaes relacionadas clatura, cuja utilizao ser destacada durante a elaborao dos cdigos fonte.
com a linguagem Java (alm de ser um instrumento interessante para elaborao Tal como ocorre com os conceitos, deixar de us-la no gera erros de lgica, de
de exerccios em aula). Por isso, escolhemos um de seus diagramas (de clas- compilao ou de execuo. Seguiremos, entretanto, risca as recomendaes de
ses) para ilustrar nossos exemplos. bom frisar, no entanto, que os recursos da conceitos e convenes, para que sejam conhecidas em profundidade e tambm
UML vo muito alm desses diagramas. em nome da implantao de boas prticas de programao.
4.4. Eclipse
IDE (Integrated Development Environment, ou ambiente integrado de desen- o projeto da livraria Duke Controle de clientes: vendas.
A Eclipse Foundation
volvimento) um programa de computador que rene recursos e ferramentas A partir desse ponto, vamos Controle de funcionrios: clculo de salrios.
uma organizao
de apoio para agilizar o desenvolvimento de softwares. Aqui, trataremos da IDE desenvolver um controle de estoque e Controle de produtos: compras, vendas e estoques disponveis.
sem fins lucrativos que
Eclipse Classic 3.5.0, comumente conhecida por Galileo (as verses mais recentes movimentao para uma livraria fictcia, Controle de fornecedores: compras realizadas de cada fornecedor.
hospeda os projetos
Eclipse e ajuda a manter
fi cam disponveis para download no site htpp://www.eclipse.org/downloads/.) chamada Duke. Todos os exemplos Controle de compra e venda: o sistema manter um registro de todas.
tanto uma comunidade criados a seguir sero reaproveitados as movimentaes realizadas de acordo com as regras da livraria.
de openSource (grupo O Eclipse mantido pela Eclipse Foundation, que possui projetos que se con- para a construo desse projeto.
que desenvolve centram na criao de uma plataforma de desenvolvimento composta por qua- Para o software da empresa, temos a
softwares com cdigo dros extensveis e ferramentas para construo, implantao e gerenciamento de manuteno dos dados (em banco) e o
de fonte aberto) softwares em todo o seu ciclo de vida.
levantamento dos seguintes requisitos:
como um conjunto de
produtos e servios 4.5. orientao a objetos (1)
complementares. O
projeto Eclipse foi Uma vez familiarizados com uma parte do universo das siglas e com os am-
originalmente criado bientes de desenvolvimento relacionados linguagem Java, o momento de
pela IBM em novembro aprofundar o conhecimento do tema e das boas prticas de programao, na
de 2001 e apoiado construo de softwares orientados a objetos. Para isso, nosso foco de estudo
por um consrcio ser a construo de um projeto. Para comear, importante entender diversos
de fornecedores de conceitos que ajudaro a estruturar e a padronizar os programas desenvolvidos
software. (Para mais com essa tcnica. A construo de softwares independentes, de fcil expanso,
informaes de alto nvel de reusabilidade (a possibilidade de reutilizar trechos de um pro-
sobre o Eclipse, acesse: grama) e que viabilizam a interao entre programas e plataformas diferentes,
htpp://www.eclipse.org). depende dessa padronizao, graas adoo dos conceitos da orientao a ob-
jetos. Deixar de usar esses conceitos no gera, necessariamente, erros de compi-
lao, de lgica ou de execuo. Porm, faz com que os softwares gerados no
apresentem as vantagens inerentes orientao a objetos, como, justamente, o
aumento da reusabilidade e a facilidade de manuteno e de expanso.
102 103
Informtica 4 captulo 4
4.5.1. Componentes elementares As classes de modelagem podem ser comparadas a moldes ou formas que defi-
nem as caractersticas e os comportamentos dos objetos criados a partir delas.
4.5.1.1. Classes Vale traar um paralelo com o projeto de um automvel. Os engenheiros defi-
nem as medidas, a quantidade de portas, a potncia do motor, a capacidade em
Em Java, tudo definido e organizado em classes (a prpria linguagem estru- relao ao nmero de passageiros, a localizao do estepe, dentre outras descri-
turada dessa forma). Inclusive, existem autores que defendem ser correto chamar es necessrias para a fabricao de um veculo.
a orientao a objeto de orientao a classes. As classes exercem diversos papis
em programas Java, a princpo vamos nos ater a duas abordagens: Durante a elaborao do projeto, bvio que o automvel ainda no existe. Po-
rm, quando for fabricado, todas as especificaes previamente definidas no dese-
Classes de modelagem: so as que daro origem a objetos. Ou, ainda, nho tero de ser seguidas risca. Os diferentes modelos desse mesmo veculo tero
so as que definem novos (e personalizados) tipos de dados. detalhes diferenciais, como cor da lataria, tipo das rodas, material do banco, aces-
srios etc. Nada, entretanto, que altere as caractersticas originais, como um todo.
Classe Principal: ter, por enquanto, a finalidade de implementar o m- Sero informaes acrescentadas aos elementos j definidos no projeto (atributos).
todo main (principal). Poderia ter qualquer nome, desde que respeitadas
as regras de nomenclatura de classes. Ser chamada, ento, de Princi- O funcionamento bsico do automvel tambm foi definido no projeto. O mo-
pal, como referncia ao mtodo main. torista poder acelerar, frear, trocar marchas, manobrar etc. Essas aes, assim
como a respectiva resposta do carro (mtodos), permitem uma outra analogia
Nossa primeira classe ser a representao de uma pessoa segundo os critrios da com nosso assunto. O motorista (que seria no nosso caso o programador) no
orientao a objetos. Para isso, utilizaremos um diagrama de classe (UML), um precisa ter conhecimentos profundos sobre mecnica para, por exemplo, acele-
critrio que valer para os demais exemplos desse captulo (figura 64). rar o automvel. Internamente, o veculo possui um complexo mecanismo que
aciona as partes responsveis pela injeo e pela combusto. Esta, por sua vez,
Do projeto ao gera uma presso sobre outras engrenagens do motor, impulsionando as rodas e
automvel, assim fazendo o carro se deslocar processos tambm especificados no projeto. Para
como da classe o motorista, quando o objetivo velocidade, basta saber que preciso pisar
ao objeto. no pedal do acelerador e que quanto mais presso for feita mais rpido anda-
r o veculo. Resumindo: para uso dirio do automvel (objeto) no preciso
conhecer detalhes de como o funcionamento dos mecanismos foi definido no
projeto (classe). Basta oper-los (chamar os mtodos, obedecendo sua assinatu-
ra como veremos, em seguida). Da mesma forma, o programador no precisa
saber, em detalhes, como a classe System, por exemplo, foi desenvolvida, mas
sim saber como utiliz-la para apresentar uma informao na tela.
4.5.1.1.1. Atributos
As informaes (dados) que definem as caractersticas e os valores pertinentes
classe e que sero armazenados nos (futuros) objetos so chamadas de atributos.
Tambm so conhecidos como variveis de instncia. Para no confundir com
variveis comuns, vamos cham-los sempre de atributos.
4.5.1.1.2. Mtodos
Mtodos so blocos de cdigo que pertencem a uma classe e tm por finalidade
realizar tarefas. Geralmente, correspondem a uma ao do objeto. Consideran-
do-se o exemplo do automvel, os mtodos poderiam definir processos como
ligar, acelerar, frear etc.
Equipe Eesc-USP Baja Sae
104 105
InFoRmtICa 4 CaPtulo 4
Figura 64
Diagrama de classe Por conveno, todo nome de classe
Nome da classe
(UML) da Pessoa comea com letra maiscula.
classe Pessoa.
- nome : String Pessoa
- endereco : String
- telefone : String Atributos O sinal de menos - indica a visibilidade do
atributo. Nesse caso, privado (private em
+ Pessoa() : void - nome : String ingls).
+ Pessoa(nome : String, endereco : String, telefone : String) : void - endereco : String
- telefone : String Por conveno, todos os nomes de atributos
+ getNome() : String
+ setNome(nome : String) : void so escritos com letras minsculas.
+ getEndereco() : String
Depois especicado o tipo de dado que
+ setEndereco(endereco : String) : void
ser armazenado no atributo
+ getTelefone() : String
+ setTelefone(telefone : String) : void
+ inserirDadosPessoa() : void
+ apresentarPessoa() : void Mtodos O sinal de mais + indica a visibilidade
do mtodo, nesse caso, pblico (public em
+ Pessoa() : void ingls).
+ Pessoa(nome : String, endereco : String, telefone : String) : void
+ getNome() : String
+ setNome(nome : String) : void Por conveno, o nome dos mtodos
+ getEndereco() : String escrito com letras minsculas.
+ setEndereco(endereco : String) : void
+ getTelefone() : String
+ setTelefone(telefone : String) : void Os nicos mtodos que tm exatamente o
+ inserirDadosPessoa() : void
+ apresentarPessoa() : void mesmo nome da classe so os construtores.
Tambm iniciam com letras maisculas.
Principal
Nomes compostos por vrias palavras
+ main(args[ ] : String) : void
comeam com letra minscula e tm
a primeira letra das demais palavras
maiscula, sem espao, trao, underline,
ma traz detalhes dos atributos e mtodos que compem a classe. A tabela ou qualquer outro separador. Por exemplo,
11 descreve os detalhes contidos nos trs compartimentos (nome, atributos apresentar Pessoa.
e mtodos) do diagrama de classe.
Todo mtodo tem parnteses na frente
4.5.1.1.4. Codificao da classe Pessoa do nome. Servem para denir os seus
parmetros. Um mtodo pode ou no ter
A abertura de uma classe definida com seu modificador de acesso (de-
talhado a seguir), que, por sua vez, d a visibilidade (nesse caso, pblica), parmetros.
alm do comando class e do nome da classe. A definio da classe fica de-
Por ltimo, a denio do retorno. Se o
limitada entre as chaves { }, que estabelecem o incio e o fim de um bloco
de cdigo da linha 1 a 57. Observe, na figura 65, a codificao da classe mtodo tiver retorno, especicado o
Pessoa. Perceba que parte do cdigo foi suprimida, mais precisamente a co- tipo, por exemplo, String e se no tiver
dificao dos mtodos (ficando visvel somente a assinatura ou abertura colocada a palavra void (vazio).
dos mtodos), os quais sero detalhados mais adiante. possvel perceber
as partes ocultas no cdigo por meio de um sinal de + na frente do nmero
da linha. tabela 11 Detalhes dos trs compartimentos do diagrama de classe.
106 107
Informtica 4 captulo 4
Figura 65
rmetros ( ). Essas especificaes, mais precisamente o nome e os parmetros (a
Codificao da
quantidade e o tipo), definem a assinatura do mtodo. Isso ser detalhado depois,
classe Pessoa. assim como as linhas de cdigo que fazem a apresentao dos dados. No trecho
ilustrado pela figura 66, observamos a codificao do mtodo apresentarPessoa.
Perceba que toda a linha de instruo termina com ponto-e-vrgula.
4.5.1.1.5. Comentrios
Existem algumas formas de inserir comentrios no cdigo, como ilustra a figura
67. Essa prtica aconselhvel para a futura gerao de documentao do sistema
e tambm possibilita o esclarecimento do cdigo em pontos especficos. Isso pode
ser muito til para voc e outros programadores que trabalhem no mesmo cdigo.
Figura 67
Insero de
comentrios
no cdigo.
108 109
InFoRmtICa 4 CaPtulo 4
Figura 69
Sada do mtodo
apresentarPessoa().
Objeto Mtodo
Figura 68
Codificao da sistema acessado e executado. A assinatura do mtodo main ser sempre
classe Principal. feita dessa forma.
4.5.2. modificadores de acesso
Observe a fi gura 68. Vamos linha 09, na qual realizada a criao (instancia-
o) do objeto p do tipo Pessoa. Veja como isso ocorre: Tanto os atributos quanto os mtodos devem (por clareza de cdigo) ter sua
visibilidade defi nida na declarao (para atributos) e na assinatura (para os m-
Primeiro houve a abstrao da entidade do mundo real a ser representada todos). Visibilidade, no caso, signifi ca deix-los ou no disponveis para uso em
em nosso programa (no caso, uma pessoa). Isso aconteceu na defi nio outras classes da aplicao. Nas de modelagem, a visibilidade defi ne se deter-
das informaes que deveramos armazenar (atributos) e nas aes que minado atributo ou mtodo fi car acessvel por intermdio do objeto depois de
deveramos programar (mtodos). instanciado. Por exemplo, o mtodo apresentarPessoa foi chamado (acessado) a
partir do objeto p (p.apresentarPessoa()) na classe Principal, graas ao fato de ter
Depois, desenhamos essa entidade (Pessoa), utilizando um diagrama de sido defi nido como public na classe Pessoa. Se tentarmos acessar, por exemplo,
classe (pertencente especifi cao da UML) e defi nimos a classe. o atributo email do objeto, no ser possvel. Na verdade, esse atributo no fi ca
visvel na classe Principal, porque foi defi nido como private na classe Pessoa.
Ao defi nirmos a classe, detalhamos todos os atributos (dados) e mtodos O uso de modifi cadores de acesso no obrigatrio. Se forem omitidos, a vi-
(aes) pertencentes a essa classe. sibilidade default (padro) adotada a protected (protegido) visvel dentro do
mesmo pacote. Porm, seu uso deixa o cdigo mais claro em relao ao que est
Uma vez defi nida a classe (o novo tipo), podemos criar (instanciar) um acessvel ou no por intermdio dos futuros objetos.
objeto para ser utilizado. Lembre-se: na classe so feitas as especifi caes
do objeto, assim como o projeto do automvel. Ns no manipulamos a 4.5.2.1. Private
classe, da mesma forma que no dirigimos o projeto do automvel. De-
vemos instanciar (criar um objeto) a partir da classe criada, assim como o Os atributos e mtodos defi nidos por esse modifi cador somente so visveis (po-
carro deve ser fabricado a partir do projeto. Da, poderemos manipular as dem ser acessados) dentro da classe em que foram codifi cados. Por exemplo, o
informaes sobre o cliente dentro do programa, o que equivale a dirigir atributo e-mail defi nido na classe Pessoa. Dentro dela (normalmente nos m-
o carro no mundo real. todos da classe) esse atributo pode ser manuseado (seu valor lido ou alterado).
110 111
Informtica 4 captulo 4
Porm, a partir de uma instncia da classe Pessoa, isto , de um objeto do tipo aos valores dentro dos parnteses). Esses valores sero atribudos (armazenados)
Pessoa, o atributo fica inacessvel. na sequncia em que esto escritos (o primeiro parmetro no primeiro atributo,
o segundo parmetro no segundo atributo e o terceiro parmetro no terceiro
4.5.2.2. Public atributo). O mesmo acontece no mtodo this(), no qual os valores entre parn-
teses referem-se aos atributos na mesma sequncia.
Os atributos e mtodos definidos com o modificador public so visveis em qual-
quer lugar dentro da classe e podem ser acessados sem nenhuma restrio a 4.5.4. Garbage Colletor (Coletor de lixo)
partir de um objeto instanciado.
Em um sistema orientado a objetos, vrios deles so instanciados (criados
4.5.2.3. Protected durante sua execuo). Para que se possa utilizar esse objeto, criada uma
referncia a esse endereo de memria onde ele est armazenado. Toda vez
Um terceiro tipo, o protected (protegido, em portugus), define que um atributo que fazemos uma referncia a um objeto, a JVM (mais precisamente um
ou mtodo pode ser visto dentro da prpria classe e em objetos instanciados a recurso dela) registra essa informao em uma espcie de contador. Assim,
partir de classes que pertenam ao mesmo pacote (package em ingls). feito o controle de quantas referncias esto apontando para aquele
espao da memria (objeto). Quando o contador est em zero, ou seja, no
O uso de packages ser detalhado mais adiante. h referncia, o objeto se torna um candidato a ser removido da memria.
4.5.3. Mtodos construtores Periodicamente, em intervalos calculados pela JVM, esses objetos sem refe-
rncias so retirados da memria e o espao alocado volta a ficar disponvel,
Instanciar um objeto
Outra definio que busca maior clareza de cdigo a implementao do dando lugar a novos. O recurso responsvel por essa limpeza da memria
alocar (reservar) um
construtor, um mtodo especial responsvel pela inicializao dos atributos chamado de Garbage Collector (coletor de lixo). Tem como responsa- espao em memria
de um objeto no momento de sua criao (instanciao). Se sua codificao bilidade rastrear a memria, identificar quantas referncias existem para (RAM - Random Access
for omitida, acionado o construtor default (padro), que inicializa os atri- cada objeto e executar um processo que elimine os objetos sem referncias. Memory ou memria
butos sem nenhum contedo. Em nossos exemplos, adotaremos a prtica Substitui, ento, os mtodos destrutores e o gerenciamento de ponteiros de acesso randmico).
de definir pelo menos dois construtores por classe: um que inicializar os (referncias a espaos de memria) existentes em outras linguagens.
atributos vazios e outro que possibilitar a passagem de valores a serem ar-
mazenados nos atributos. 4.5.5. O comando this
Uma classe pode ter quantos construtores forem necessrios para aplicao. E O this utilizado como uma referncia ao prprio objeto que est chaman-
todos eles tero sempre o mesmo nome da classe (inclusive com a primeira letra do um mtodo. O uso desse comando tambm deixa claro quando estamos
maiscula). Porm, com a passagem de parmetros diferentes. Os construtores nos referindo a um atributo ou mtodo da mesma classe na qual estamos
esto diretamente relacionados aos atributos. Portanto, se uma classe no tiver programando. No obrigatrio, porm, dentro do construtor que recebe
atributos, os construtores sero desnecessrios. A codificao dos construtores parmetros, por exemplo, possvel visualizar o que parmetro e o que
na classe Pessoa ficar como ilustra a figura 70. atributo. Isso acontece, apesar de os dois terem exatamente os mesmos
nomes (os atributos vm precedidos do this). Adotaremos o uso do this em
O primeiro construtor, sem parmetros (nada entre os parnteses), adiciona va- todos os nossos exemplos.
zio em cada um dos atributos (porque os trs atributos so String). J o segundo
est preparado para receber trs parmetros, que so os valores do tipo String, 4.5.6. Encapsulamento
identificados como nome, endereco e telefone (lembre-se de que a referncia
No exemplo da classe Pessoa, utilizamos mais um conceito da programao
Figura 70 orientada a objetos. Quando definimos que um atributo (ou mtodo) tem a
Codificao dos visibilidade privada (modificador de acesso private), limitamos o acesso so-
construtores na mente sua classe. Podemos imaginar que, depois de instanciado o objeto,
classe Pessoa. esse atributo fica protegido (encapsulado) dentro desse objeto. Assim, no
possvel acess-lo de nenhuma outra classe ou objeto. Tal caracterstica
extremamente importante para proteger atributos que no devem ter seus
contedos vulnerveis a acessos indevidos.
Imagine que o valor mximo que um cliente pode comprar em uma loja est
definido em um atributo limiteDeCredito em uma classe Cliente (que d ori-
112 113
InFoRmtICa 4 CaPtulo 4
Figura 71a
gem aos clientes do sistema). Seja por descuido ou por m f, se o valor desse
O mtodo get.
atributo for alterado para um valor exorbitante, ocorrer a seguinte situao
no sistema: o cliente (do mundo real) fi car liberado para comprar at esse
valor exorbitante (tendo ou no condies para pagar). Normalmente, os em-
preendimentos comerciais defi nem limites de crdito para seus clientes, to-
mando por base a renda mensal de cada um, o tempo de cadastro, o histrico
de pagamentos etc. Enfi m, h uma regra para que esse limite de crdito seja
calculado e/ou atualizado.
4.5.6.1.2. mtodo set
Agora, imagine outra situao. Determinada classe do sistema respon-
svel pelo processo de venda dessa mesma loja. Em algum momento, ser J os mtodos responsveis por escrever (alterar) o contedo de um atributo co-
necessrio verificar se a quantidade de estoque disponvel suficiente para meam com a palavra set, seguida pelo nome desse atributo (fi gura 71b) .
atender aos pedidos. Portanto, essa classe deve ter acesso ao atributo esto-
queDisponvel do produto que est sendo vendido. Tal acesso necessrio e Figura 71b
autorizado pelo sistema. Porm, se o atributo estoqueDisponivel foi defini- O mtodo set.
do como privado, esse acesso no ser possvel. A soluo para o problema
definir mtodos de acesso para os atributos.
apresentarPessoa()
4.5.6.1.1. mtodo get
Por padro do prprio Java, os mtodos que leem e mostram (retornam) o con-
tedo de um atributo comeam com a palavra get, seguida pelo nome desse
atributo (fi gura 71a).
114 115
InFoRmtICa 4 CaPtulo 4
e funciona como uma pelcula protetora do objeto. Tem passagens padro que trans- 4.6. Entrada e sada de dados
ferem informaes de fora para dentro (setters) e de dentro para fora (getters). Alm
disso, tm algumas passagens (mtodos) com fi nalidades especfi cas e que tambm J vimos como inserir dados nos atributos por meio do construtor e tambm
podem entrar e/ou sair com informaes. Esse trfego acontece de acordo com re- como mostrar esses dados por meio do comando System.out.println(). Existem
gras de entrada e sada de informaes defi nidas nas passagens (mtodos). Em nossos ainda diferentes formas de leitura e de escrita de dados em Java. Agora, para
exemplos, sempre sero utilizados getters e setters para acessar os atributos, garantindo desenvolver exemplos mais elaborados, preciso saber como realizar a entrada
os benefcios do encapsulamento. e a sada de dados utilizando a classe JOptionPane, localizada na API Swing=,
que contm vrios mtodos com essa fi nalidade.
4.5.8. Viso geral da classe Pessoa e sua estrutura
4.6.1. Declarao import
A fi gura 73 reproduz a codifi cao completa da classe Pessoa, destacando as
camadas vistas at agora. Os comandos utilizados nas classes devem estar acessveis para que a JRE consi-
ga interpret-los e execut-los. Desse modo, um conjunto de comandos bsicos
Figura 73
fi ca disponvel por padro, mas a maioria dos recursos da linguagem necessita
Codificao completa
de uma indicao para a JRE localiz-los. Isso feito pela declarao import,
da classe Pessoa.
que deve ser inserida no comeo da classe (antes da abertura) e composta pelo
caminho a partir da API at o local do recurso desejado. No caso da classe JOp-
atributos
tionPane o import fi car assim como aparece na fi gura 74.
Nesse caso, a interpretao posso utilizar qualquer recurso existente dentro da API
Swing que pertence a API javax. A API Swing e seus recursos sero abordados com
detalhes, quando conhecermos os componentes grfi cos disponveis no Java.
Figura 74
getters e setters (mtodos de acesso) O import, na classe
JOptionPane.
Figura 75
O uso do caractere
especial *.
116 117
Informtica 4 captulo 4
Figura 76 Figura 78
Mtodo Alterao no mtodo
showMessageDialog. apresentarPessoa.
Figura 79
Apresentao
como no exemplo da figura 76, no qual a mensagem gerada pela primeira da mensagem em
linha ser o texto Nome:, juntando (somando as Strings) com o retorno uma nica janela.
do mtodo getNome(), ou seja, o contedo do atributo nome. A execuo
do mtodo apresentarPessoa ficar como ilustra a sequncia da figura 77.
Figura 80
Acrscimo do mtodo
inserirDadosPessoa().
118 119
InFoRmtICa 4 CaPtulo 4
Figura 81 Figura 82
Informaes do Retornar
Visibilidade Passagem de parmetro
cabealho de um valor do
Classe Pessoa:
um mtodo. tipo String.
4.7.1. Retorno de valor As trs primeiras linhas armazenam os valores lidos em variveis. Na quarta li-
nha, usa-se o mtodo inserirDadosPessoa do objeto p e as variveis so passadas
O mtodo getNome() l o contedo do atributo nome e retorna essa in- por parmetro. Ainda nessa mesma linha, aps a execuo, o mtodo inserir-
formao para o local onde foi solicitada. O comando return envia o valor DadosPessoa retorna uma mensagem de confi rmao armazenada na varivel
definido sua frente (no caso, o contedo do atributo nome) para fora do mensagem. E na quinta linha apresentada a mensagem pelo mtodo showMes-
mtodo pela porta de sada de informaes, definida com o tipo String. sageDialog(), como ilustra a fi gura 84.
120 121
InFoRmtICa 4 CaPtulo 4
Figura 84
Segundo a Java Language Specifi cation, as palavras null, true e false so chamadas de
Mtodo main da
valores literais, e no de palavras reservadas, porm, assim como as palavras reserva-
Classe Principal. das, no possvel utiliz-las para criar um identifi cador (varivel, mtodo etc.).
O mtodo recebe os trs parmetros e os passa (tambm por parmetro) char Caractere em notao unicode de 16 bits.
para os respectivos mtodos sets, os quais armazenaro os dados nos atri- Serve para a armazenagem de dados
alfanumricos.
butos. Depois, retorna uma frase (String) de confirmao, como mostra a
Possui um valor mnimo de \u0000 e um valor
figura 85. mximo de \uffff. tambm pode ser usado
como um dado inteiro com valores na faixa
4.8. Estruturas e recursos da linguagem Java entre 0 e 65535.
byte um inteiro complemento de 2 em 8 bits com
4.8.1. Palavras reservadas do Java sinal. Ele tem um valor mnimo de -128 e um
valor mximo de 127 (inclusive).
As palavras reservadas do Java so aquelas que tm um sentido predetermi-
nado nessa linguagem. No podem ser usadas para outros fins, como por short um inteiro complemento de 2 em 16 bits
exemplo nomes de variveis ou mtodos. Confira quais so elas no quadro com sinal. Possui um valor mnimo de -32.768 e
mximo de 32.767 (inclusive).
Palavras Reservadas.
int um inteiro complemento de 2 em 32 bits com
sinal. tem valor mnimo de -2.147.483,648 e
PALAVRAS RESERVADAS mximo de 2.147.483,647 (inclusive).
abstract boolean break byte case catch long um inteiro complemento de 2 em 64 bits com
sinal.
char class const continue default do o seu valor mnimo
-9.223.372.036.854.775,808 e o mximo,
double else extends final finally oat 9.223.372.036.854.775,807 (inclusive).
oat Representa nmeros em notao de ponto
for goto if implements import instanceof utuante normalizada em preciso simples
de 32 bits em conformidade com a norma
int interface long native new package IEEE 754-1985. o menor valor positivo
representado por esse tipo 1.40239846e-46 e
private protected public return short static o maior, 3.40282347e+38
strictfp super switch synchronized this throw double Representa nmeros em notao de ponto
utuante normalizada em preciso dupla de 64
throws transient try void volatile while bits em conformidade com a norma IEEE 754-
1985. o menor valor positivo representado
assert 4.94065645841246544e-324 e o maior,
1.7976931348623157e+308
122 123
InFoRmtICa 4 CaPtulo 4
4.8.3. operadores
ARITMTICOS ATRIBUIES
+ adio = atribuio
LGICOS
TERNRIO
&& E (and)
?: Condicional (if-then-else compacto)
|| ou (or)
! no (not) INCREMENTO
++ pr-incremento ou ps-incremento
BIT A BIT
& E (bitwise and)
DECREMENTO
| ou (bitwise or)
-- pr-decremento ou ps-decremento
^ ou exclusivo (bitwise xor)
124 125
InFoRmtICa 4 CaPtulo 4
Figura 86
CONVERSO
Declarao
de variveis. De Para Mtodos
Perceba que nos tipos fl oat e double deve-se explicitar o formato. Caso isso no String double Double.parseDouble()
seja feito, ocorrer uma promoo de tipo (visto a seguir). Constantes em Java
so declaradas pelo comando fi nal, ilustrado na fi gura 87.
int String Integer.toString() ou String.valueof()
Figura 87
Declarao de
constantes. oat String Float.toString() ou String.valueof()
CAST
Tipos Cast vlidos
Figura 89
short byte
126 127
InFoRmtICa 4 CaPtulo 4
Figura 93
4.8.5.3. Promoo
A promoo pode ser entendida como um tipo de cast automtico (implcito),
conforme mostra o quadro Promoo.
Figura 94
PROMOO
Tipos Promoes vlidas
double nenhuma
oat double
boolean nenhuma
Figura 96
128 129
Informtica 4 captulo 4
Figura 99
Quando as classes assumem o papel de tipos, como o caso do String, esses
objetos possuem mtodos para manipulao de seus contedos. Por exemplo, a
comparao de Strings (textos) feita pelo mtodo equals() que retorna true, se
o valor passado por parmetro for igual ao contedo armazenado, e false, se for
diferente (figura 97).
Figura 97
4.8.7.2. Do-while
O teste condicional est no final do looping, isto , o bloco de cdigo contido
no do-while ser executado a primeira vez e, enquanto a condio for verdadei-
ra, ser repetido (figura 100).
Figura 100
4.8.6.2. Switch-case
Em Java, o switch-case s aceita a condio nos tipos int, byte e char (figura 98). 4.8.7.3. For
Figura 98 O bloco de cdigo contido no for ser repetido quantas vezes a condio na
Switch case. abertura do looping determinar. No exemplo em seguida, a varivel ir de 0 a
9 (figura 101).
Figura 101
130 131
InFoRmtICa 4 CaPtulo 4
Figura 102
Por meio de loopings, utilizando um contador (fi gura 107).
Vetor ndices
unidimensional. ndices 0 1 2 3 4
Figura 107
vetorInteiros 10 30 50 20 40
vetorInteiros
valores
nome
nome valores
Figura 103
Figura 105
Usando um iterador (detalhado adiante), como na fi gura 110.
Figura 110
Figura 106
132 133
InFoRmtICa 4 CaPtulo 4
Figura 111
J a atribuio pode ser realizada de duas formas:
Vetor
bidimensional ndices Indicando explicitamente o ndice (posio) desejado (fi gura 115).
irregular. ndices 0 1 2 3 4
nome 0 12 1 6 47 85
nome 1 4 36 62 25 3
2 32 67 74 41 valores
valores
3 8 23 9
4 17 49
Exemplos:
A declarao pode ser feita de trs maneiras:
Em duas etapas (primeiro, defi nindo-se o tipo e, depois, a dimenso), como na
fi gura 112.
Figura 112
Quanto leitura (apresentao), h duas opes para faz-la:
Figura 117
Figura 113
Figura 114
Por meio de loopings, utilizando um contador (fi gura 118).
134 135
InFoRmtICa 4 CaPtulo 4
Figura 118
uma List quando a ordem de insero ou a posio na coleo nos interessa. H al-
guns mtodos importantes, quando manipulamos Lists (confi ra o quadro Mtodos
da Interface List).
Para fechar essa introduo bsica sobre Collections, vamos ver, em seguida,
alguns mtodos muito teis na manipulao de ArrayList (observe o quadro
4.8.9. Collections Mtodos da Collection ArrayList).
um conjunto de classes e interfaces disponveis no pacote java.util, que faz o MTODOS DA COLLECTION ARRAYLIST
uso do import necessrio. Essas classes fornecem recursos para trabalhar com
Mtodo Descrio
conjuntos de elementos (colees). Na verdade, todas as funcionalidades encon-
tradas nas collections poderiam ser feitas manualmente, com a utilizao de
recursos normais da linguagem. A vantagem das collections que elas j trazem sort (arraylist) ordena os elementos em ordem crescente
essas funcionalidades prontas.
shufe (arraylist) o oposto do sort. ao invs de ordenar, ele
O estudo das collections relativamente extenso, pois existem muitos recursos dispo- desordena (mistura) os elementos do arraylist
nveis. Por enquanto, vamos conhecer uma dessas colees, a ArrayList, responsvel
pelo manuseio de arrays. Sua grande vantagem contar com mtodos prontos. binarySearch (arraylist, valor) Pesquisa um valor no arraylist e retorna
sua posio (ndice). Se no for encontrado,
4.8.9.1. arraylist retorna um nmero inteiro negativo
Antes de nos aprofundarmos nessa coleo, vamos primeiro conhecer melhor a reverse (arraylist) Inverte a ordem dos elementos
interface List. Como o prprio nome indica, ela cria e gerencia uma lista. Isso signi-
fi ca que a ordem de insero ser mantida. A interface List mantm seus elementos frequency (arraylist, valor) Conta a quantidade de ocorrncias
indexados. Permite, portanto, que exista uma preocupao com o posicionamento do elemento especificado
de cada elemento e que tal posio seja determinada pelo ndice. Devemos utilizar
136 137
Informtica 4 captulo 4
Figura 120
Figura 124
Figura 125
Figura 121
Sada obtida (figura 126).
Figura 126
138 139
InFoRmtICa 4 CaPtulo 4
Principal
Durante a anlise dos requisitos de um sistema (solicitaes que o sistema dever No modelo acima, a classe Pessoa foi defi nida como uma superclasse e as classes
atender), podemos destacar os atributos ou os mtodos comuns a um grupo de Cliente, Fornecedor e Funcionario, como suas subclasses. Do ponto de vista da
classes e concentr-los em uma nica classe (processo conhecido como genera- funcionalidade, tudo o que foi defi nido na superclasse (atributos e mtodos) ser
lizao). Da mesma forma, possvel identifi car o que pertinente somente a herdado pelas suas subclasses. Ou seja, um objeto instanciado a partir da classe
determinada classe (conhecido como especifi cao). A primeira vantagem dessa Cliente possui 12 atributos. So eles: nome, endereo, bairro, cidade, UF, telefone
organizao evitar a duplicidade de cdigo (ter o mesmo trecho de cdigo em e celular declarados na superclasse Pessoa, alm de limiteCredito, rendaMensal,
lugares diferentes do sistema), o que traz maior agilidade e confi abilidade na RG e CPF na subclasse Cliente. H ainda trs mtodos, nos quais mostrar telefones
manuteno e expanso do sistema. foi defi nido na classe Pessoa e inserir DadosCliente e apresentarCliente foram de-
fi nidos na classe Cliente. Na utilizao desses atributos e mtodos para um objeto
Chamamos de superclasses essas classes que concentram atributos e mtodos do tipo Cliente, fi ca transparente o local onde cada um foi declarado ou defi nido.
comuns que podem ser reutilizados (herdados) e de subclasses aquelas que
reaproveitam (herdam) esses recursos. Observe as defi nies de clientes, for- Para estabelecer a herana em relao codifi cao, as superclasses continuam
necedores e funcionrios utilizados na livraria de acordo com o diagrama de com a mesma estrutura de uma classe comum (como vimos em exemplos ante-
classes (fi gura 130). riores). J as subclasses recebem as seguintes defi nies:
140 141
InFoRmtICa 4 CaPtulo 4
Figura 132
livro Cd Dvd
- autor : String - artista : String - diretor : String
- editora : String - gravadora : String - duracao : String
- edicao : String - paisOrigem : String - censura : int
+ calcularPrecoVenda(didatico : boolean) : void + inserirDadosCd() : void + inserirDadosDvd() : void
+ inserirDadosLivro() : double + apresentarCd() : void + apresentarDvd() : void
+ apresentarLivro() : void
Principal
4.9.2. Sobrecarga de mtodo (overload) Em Java, para situaes desse tipo, usamos a sobrecarga que considera a identifi ca-
o do mtodo pela assinatura e no somente pelo nome. Como j vimos, a assina-
A programao em sistemas desenvolvidos com Java distribuda e orga- tura de um mtodo composta pelo nome e pela passagem de parmetros. Assim,
nizada em mtodos. Muitas vezes, os programadores se deparam com si- possvel defi nir os mtodos com o mesmo nome (calcularPrecoVenda, como no
tuaes em que um mtodo deve ser usado para finalidades semelhantes, diagrama) e alternar a passagem de parmetros. Observe, na fi gura 134, como fi ca a
mas com dados diferentes. Por exemplo, os produtos comercializados na codifi cao dos mtodos na classe Produto.
142 143
InFoRmtICa 4 CaPtulo 4
Figura 134
O Java identifi car o mtodo que deve ser executado de acordo com a chamada
Codificao dos
realizada, como mostra o exemplo da fi gura 137.
mtodos na
classe Produto. Figura 137
Como est sendo passado um valor do tipo double, ser executado o mtodo
calcularPrecoVenda que considera a cotao do dlar.
+ inserirDadosFuncionario() : void
No mtodo main, teremos o que ilustra a fi gura 136. + calcularSalarioFinal(valorVendido : double) : void
Figura 136
Principal
144 145
InFoRmtICa 4 CaPtulo 4
Figura 142
Na superclasse Funcionario, foi implementado o mtodo calcularSalarioFinal
considerando uma regra geral de clculo (somar 10% do valor vendido ao sal-
As classes e mtodos que vimos
rio base). Consequentemente, esse mtodo foi herdado por suas subclasses Ge-
anteriormente so chamados
rente, Vendedor e Temporario. O problema que, de acordo com as normas
de concretos. Os que estamos
da livraria, o clculo do salrio dos gerentes e dos temporrios diferente. Para
estudando agora so as classes
os vendedores, o mtodo calularSalarioFinal herdado est correto, porm, para e mtodos abstratos, que
Gerente e Temporario, no. O problema pode ser solucionado com a sobrescrita possuem algumas caractersticas
dos mtodos calcularSalarioFinal nas classes Gerente e Temporario. Na classe especficas: 1. Em UML,
Funcionario, o mtodo foi codifi cado da forma como ilustra a fi gura 139. classes e mtodos abstratos
4.9.4. Classes e mtodos abstratos so formatados em itlico. 2.
Figura 139 Uma classe concreta s pode
preciso, a princpio, conhecer os recursos utilizados na modelagem de sistemas. conter mtodos concretos.
Para entender melhor o assunto, devemos ampliar o horizonte e pensar na arqui- 3. Uma abstrata pode conter
tetura e no desenho da aplicao como um todo, assim como na manuteno e na mtodos concretos e abstratos.
expanso, atividades que podem ser realizadas por programadores (ou equipes de 4. Uma subclasse que herda um
programadores) distintas e em momentos diferentes, mas que sempre seguiro as mtodo abstrato obrigada a
J na subclasse Gerente fi ca da seguinte maneira (fi gura 140). defi nies descritas no projeto. A primeira abordagem de classe abstrata que incluir a assinatura do mtodo,
se trata de classes que no daro origem a objetos. Em outras palavras, um objeto contendo ou no implementao
Figura 140 no poder ser instanciado a partir delas. A sua fi nalidade, ento, defi nir, por (programao). 5. Enquanto
generalizao (possibilitada pela herana), os recursos (atributos e mtodos) co- no for includa a assinatura do
muns a um grupo de classes (subclasses). Analisemos a representao dos clientes mtodo abstrato herdado, a
existentes na livraria no diagrama da fi gura 143. subclasse apresentar um erro
que impedir sua compilao.
<<abstract>>
Cliente
- limiteCredito : double
+ calcularLimiteCredito() : double
Os objetos que representaro um gerente, um vendedor e um temporrio se- ClientePF ClientePJ
ro instanciados a partir das classes Gerente, Vendedor e Temporario. Nesse - rg : String - cnpj : String
momento (da criao dos objetos), o Java considera a estrutura de cada sub- - cpf : String - ie : String
- rendaMensal : double - faturamentoAnual : double
classe, a qual d origem ao objeto. Ento, um objeto do tipo Gerente considera
a codifi cao do mtodo calcularSalarioFinal da classe Gerente; um do tipo + calcularLimiteCredito() : void + calcularLimiteCredito() : void
+ inserirDadosClientePF() : void + inserirDadosClientePJ() : void
Temporario leva em conta a codifi cao da classe Temporario, e um do tipo + apresentarClientePF() : void + apresentarClientePJ() : void
Vendedor focaliza o mtodo herdado, mas todos so invocados exatamente da
mesma forma (fi gura 142). Principal
146 147
InFoRmtICa 4 CaPtulo 4
As classes Cliente e Pessoa, nesse contexto, servem somente para defi nir quais e
como sero os recursos (atributos e mtodos) comuns a ClientePF e ClientePJ. <<interface>>
Usuario
Os objetos que representaro os clientes da livraria sero instanciados a partir + validarLogin(login : String, senha : String) : boolean
das classes ClientePF e ClientePJ e nunca de Cliente e muito menos de Pessoa.
Ao defi nir as classes Pessoa e Cliente como abstratas, evitamos que, por uma
eventual falha de desenvolvimento, objetos sejam instanciados a partir delas, o <<abstract>>
Pessoa
que no faria sentido. Alm de classes, podemos tambm defi nir mtodos como
- codigo : int
abstratos, os quais servem para defi nir e forar, uma padronizao nas subclasses - nome : String
- endereco : String
em relao existncia e assinatura de mtodos herdados. - bairro : String
- cidade : String
- uf : String
Um mtodo abstrato no possui implementao (codifi cao). composto - tefone : String
- celular : String
somente pela assinatura, na qual so defi nidos seu nome, passagem de par- - login : String <<abstract>>
- senha : String Funcionario
metros e retorno de valor. Na codifi cao de uma subclasse que estende de
<<abstract>> - tipoUsuario : String - salarioBase : double
uma superclasse que, por sua vez, possui um mtodo abstrato, o programador Cliente
+ mostrarTelefones() : void - salarioFinal : double
obrigado a inserir, pelo menos, a assinatura desse mtodo, podendo ou no - limiteCredito : double + mostrarTelefones() : void
+ mostrarTelefones() : void + calcularSalarioFinal(valorVendido :
implement-lo (codifi c-lo). Voltando ao exemplo dos clientes da livraria apre- + calcularLimiteCredito() : double double) : void
sentado na fi gura 130, calcularLimiteCredito defi nido na classe Cliente um + validarLogin(login : String, senha :
Fornecedor
+ validarLogin(login : String, senha : String)
String) : void : double
mtodo abstrato. Dessa forma, nas classes ClientePF e ClientePJ, somos obri- - cnpj : String
gados a inclu-lo. A declarao abstract defi ne uma classe abstrata, conforme - ie : String
- contato : String
se observa na fi gura 144. + mostrarTelefones() : void
Figura 144
Figura 146
Cliente e Funcionario Implementao da
inteface Usuario
A declarao abstract tambm usada para mtodos (fi gura 145). Para utilizar o sistema da livraria, o usurio dever ser identifi cado por um login
e uma senha. Os funcionrios tero acesso ao sistema para utiliz-lo em suas pelas classes Cliente
Figura 145 rotinas de trabalho, como cadastros e atualizaes de dados dos clientes, pro- e Funcionario.
dutos, movimentao, entre outros recursos disponveis no sistema, cujo aces-
so tambm ser permitido aos clientes, para que possam visualizar promoes
especiais e tambm entrar em contato com a livraria, pelo seu site na internet.
A utilizao de um mtodo abstrato garante que todas as subclasses de Cliente Assim, tanto funcionrios como clientes devero ser devidamente identifi cados,
obrigatoriamente tero, pelo menos, a assinatura do mtodo calcularLimite- para ter acesso ao sistema, algo que ser realizado da mesma forma (recebendo
Credito. Isso garante no s a padronizao de modelagem (os programadores o login e a senha e retornando verdadeiro ou falso). Ento, pode-se concluir que
sero obrigados a seguir tais defi nies) como tambm a aplicao de concei- o ideal seria criar um mtodo de validao utilizado tanto por clientes como
tos polimrfi cos. por funcionrios. Mas para fazer isso nos deparamos com algumas difi culdades:
148 149
Informtica 4 captulo 4
O uso de uma interface resolve o problema j que, para implement-la, as classes no necessidade. Por exemplo, para calcular os impostos a serem pagos pela livraria,
precisam ser da mesma hierarquia. Lembre-se que uma interface s possui mtodos devemos considerar que existem aqueles que incidem sobre os funcionrios e os
abstratos. Assim, a classe Cliente e a classe Funcionario no recebero o mtodo de que incidem sobre os produtos comercializados. Nesse caso, podemos criar uma
validao j codificado. Entretanto, a partir dessa implementao, teremos a certeza interface chamada Custos que defina um mtodo calcularImpostos, o qual de-
de que existir um mtodo (com a mesma assinatura) nas classes (e subclasses) Clien- ver ser implementado na classe Funcionario e na classe Produto. Veja o exem-
te e Funcionario. Veja a codificao da interface Usuario na figura 147. plo da classe Funcionario na figura 152.
4.9.6. Polimorfismo
Para interfaces, no obrigatrio o uso do comando abstract, ficando implcito
que todos os mtodos inseridos em uma interface so abstratos. A assinatura O polimorfismo a possibilidade de utilizar um objeto como se fosse um ou-
de uma interface realizada pelo comando implements da seguinte forma: tro. Embora o conceito seja esse, algumas publicaes relacionadas ao Java e
orientao de objetos fazem abordagens diferentes. Ento, podemos considerar
Classe Cliente (figura 148). basicamente trs tipos de polimorfismo: o de mtodos, o de classe, o de interface.
4.9.6.2. De classe
Classe Funcionario (figura 150).
Considerando uma hierarquia de classes, temos, em uma superclasse, a gene-
Figura 150 ralizao de um tipo e, em suas subclasses, a especializao do mesmo tipo.
Imagine a seguinte situao: se colocarmos uma cesta disposio dos clientes
da livraria e nela estiver escrito Coloque aqui seus produtos, estes produtos
podem ser livros, CDs ou DVDs. Ou ainda, todos eles juntos. Outro exemplo:
Classe Gerente (figura 151). na livraria, existe uma porta de acesso ao estoque e nela h uma placa com o
aviso Entrada permitida somente para funcionrios. Tanto pode entrar um
Figura 151 vendedor como um gerente, porque ambos so funcionrios.
Esse mesmo princpio se aplica aos programas em Java. Se definirmos um mtodo que
recebe um objeto do tipo Produto por parmetro, podemos passar qualquer objeto
instanciado a partir de uma subclasse de Produto que ele ser aceito. Da mesma for-
ma, se um mtodo espera um objeto do tipo Funcionario, possvel passar um objeto
instanciado a partir da classe Vendedor, por exemplo, que ser aceito sem problemas.
Outra importante caracterstica das interfaces que uma mesma classe pode
implementar vrias delas. Como no existe herana mltipla em Java (uma O raciocnio o seguinte: Um vendedor um funcionrio, assim como, Um
subclasse ter mais de uma superclasse), o uso de interface supre essa eventual livro um produto. A diferena que vendedor foi definido a partir de uma
150 151
InFoRmtICa 4 CaPtulo 4
Figura 155
venda Polimorfismo de
Itemmovimentacao
classe e de interface.
Principal - produto : Produto + vender() : void
- qtde : int + nalizarNF(nota : Movimentacao) : void
+ main(args[ ] : String) : void - totalItem : double
+ totalizarItemVenda() : void
movimentacao
Itemmovimentacao
4.9.6.3. De interface - nf : int
Principal - produto : Produto - data : Date
Tanto uma superclasse como uma interface podem ser interpretadas como um - qtde : int - destinatario : EntidadeMovimentacao
+ main(args[ ] : String) : void - totalItem : double - itens[ ] : ItemMovimentacao
superTipo. Ou seja, possvel referenciar um objeto pela interface que sua - status : boolean
classe de origem implementa. Voltemos ao exemplo da movimentao da livra- + totalizarItemCompra() : void - tipo : String
+ totalizarItemVenda() : void
ria. Para defi nir quais classes podem ser utilizadas na movimentao de mer- + adicionarItem(item : ItemMovimentacao) : void
cadorias, criamos a interface EntidadeMovimentacao e a implementamos nas
classes Cliente e Fornecedor (fi gura 154).
A movimentao, considerando compra e venda, fi car como aparece na fi gura 155. Compra
Temos uma nica classe Movimentacao responsvel pelos dados do corpo da + comprar() : void
compra e da venda. Para armazenar o cliente (no caso de venda) ou o fornecedor + nalizarNF(nota : Movimentacao) : void
(no caso de compra), h o atributo destinatrio, do tipo EntidadeMovimenta-
cao, interface que as duas classes implementam.
152 153
Informtica 4 captulo 4
154 155
Informtica 4 captulo 4
Figura 158
lidacaoUsuario, que d origem tela anterior, para depois conferir os principais
Classes organizadas em
pontos do cdigo (consulte o quadro Principais pontos do cdigo).
pacotes (packages).
Figura 159
Tela de validao
de usurios.
Figura 160
Classe
FormValidacaoUsuario.
No eclipse, para criar um novo package, clique no menu File/ New/ Package.
156 157
Informtica 4 captulo 4
Figura 161
Linha 01: importa a API AWT e a disponibiliza
Classe Principal.
para uso.
158 159
Informtica 4 captulo 4
A interface MouseListener tem cinco: Na prxima codificao, vemos como implementar o WindowListener (figura 164).
Figura 162
Projeto
ValidacaoUsuario.
160 161
Informtica 4 captulo 4
Figura 166
Quando um evento for disparado em qualquer componente adicionado ao
Importando o
ActionListener, ele ser capturado e o mtodo actionPerformed, executado.
pacote model. Resta, agora, identificar qual componente sofreu o processo. Para isso, uti-
lizaremos o parmetro do tipo ActionEvent do mtodo actionPerformed e
invocaremos seu mtodo getSource(), que retornar o nome do componente
que disparou o processo. Se o componente for igual ao bValidar (nome do
boto), verificado se um dos dois textFields esto vazios. Caso no este-
jam, o mtodo validarLogin do objeto clientePF acionado, passando por
parmetro o que foi digitado nos textfields tf Login e tfSenha. Os compo-
nentes textFields possuem um mtodo getText() para recuperar o que foi
digitado nele e um mtodo setText() que altera o seu valor.
4.11.3. Swing
Para fazer a interao do objeto clientePF com a tela de login, instanciamos A API Swing, localizada no pacote javax.swing, uma atualizao da AWT
o objeto na classe FormValidacaoUsuario, inicializando o login com a palavra que soluciona - ou pelo menos diminui - a dependncia do sistema ope-
aluno e a senha com 123, pelo construtor. Mais uma vez, respeitando a or- racional, caracterstica de interfaces desenvolvidas com AWT. Essa API
ganizao de packages. Para ter acesso classe ClientePF, necessrio importar desenha cada componente ou janela que necessita. Assim, permite que o
o pacote model (linha 14), conforme ilustra a figura 166. comportamento visual do programa seja o mesmo em qualquer platafor-
ma, alm de oferecer um conjunto extenso de componentes visuais. Para
O prximo passo adicionar os botes ao ActionListener, pelo mtodo testar as diferenas entre o AWT e a Swing, vamos transformar a classe
addActionListener(this), para que eles passem a ser monitorados pelo Action- FormValidarUsuario em Swing. Primeiro, vale analisar a abertura da classe
Listener (figura 167). (figura 169).
Figura 169
A classe
FormValidacaoUsuario
utilizando o swing.
E, por fim, implementar o mtodo actionPerformed (figura 168).
Figura 168
Implementando o
actionPermormed.
162 163
Informtica 4 captulo 4
Em relao aos listeners, a implementao explcita no mais necessria. Eles Linha 44: a incluso de um componente na interface ActionLis-
continuam sendo utilizados, mas, agora, de forma implcita. No trecho seguinte tener (deixando preparado para receber um evento), assim como
da figura 170, temos o incio do construtor e a instanciao dos componentes. a utilizao de AWT, realizada pelo mtodo addActionListener.
Porm, com a Swing criado uma ActionListener (linha 45) den-
Figura 170 tro do mtodo addActionListener e definido seu mtodo actio-
Incio do construtor nPerformed (linha 46). Com o uso do AWT, tnhamos um nico
e instanciao dos mtodo actionPerformed e, nele, identificvamos o componente
componentes. que sofreu um evento. Com a Swing, h a definio de um Action
Listener e de um mtodo actionPerformed para cada componente
que pode sofrer um evento.
Linha 26: define o ttulo da janela pelo construtor da superclasse Em relao ao exemplo AWT, o mtodo validarLogin retorna true (se os
(acessado pelo mtodo super()). valores passados forem iguais ao seus atributos login e senha) e false, se
forem diferentes. A estrutura de desvio condicional if codificada na linha
Linha 27: cria um componente nomeado como tela do tipo Conteiner. 55 considera esse retorno para apresentar uma das mensagens definidas. A
seguir (figura 172), encontra-se a codificao do mtodo validarLogin (j
Linha 28: define que no ser utilizado um gerenciador de layout. modificado) da classe ClientePF.
164 165
InFoRmtICa 4 CaPtulo 4
ArrayIndexOutOfBoundsException InputMismatchException J em uma Checked Exception, o compilador acusa a possvel exceo e obriga o
programador a trat-la. Existem duas formas de tratar uma Checked Exception:
usando a clusula throws ou a estrutura try-catch-fi nally.
4.12.1. Error Consideremos que na classe ClientePF o atributo senha do tipo int e, portan-
to, para armazenar um valor nele preciso convert-lo, j que os componentes
A Error, com suas subclasses, utilizada para indicar erros graves que no se textField interpretam qualquer valor lido como String. Observe, na fi gura 174,
esperam que sejam tratados pelo programas. Errors raramente acontecem e no a codifi cao do mtodo validarLogin na classe ClientePF.
so de responsabilidade da aplicao. Exemplos de Errors so os internos da
JVM e a falta de memria. Figura 174
Codificao
4.12.2. Exception do mtodo
validarLogin na
Os erros em Java so, normalmente, chamados de exceptions. Uma exceo, classe ClientePF.
como sugere o signifi cado da palavra, uma situao que normalmente no
ocorre (ou no deveria ocorrer), algo estranho ou inesperado provocado no siste-
ma. O Java distingue duas categorias de excees: Unchecked (no verifi cadas)
e Checked (verifi cadas).
166 167
Informtica 4 captulo 4
Figura 175
O bloco de cdigo entre as linhas 55 e 63 pertence ao try. Se alguma exceo
Evento do
ocorrer neste trecho ela ser capturada pelo catch da linha 64. Como o possvel
componente erro que estamos tratando ocorrer na converso de String para int, um objeto
bOk na classe do tipo NumberFormatException (a classe de exceo responsvel por esse tipo
FormValidacaoUsuario. de erro) apreende o erro e passado por parmetro para o catch. Dentro do
catch (linha 65) apresentada uma mensagem explicativa para o usurio e o
programa continua sua execuo. Pelo objeto erro (parmetro do tipo Num-
berFormatException utilizado no catch) possvel recuperar mais detalhes da
exceo por intermdio de mtodos existentes em todas as classes de exceo.
Nesse exemplo, o finally foi colocado somente para mostrar que, ocorrendo ou
no uma exceo, a mensagem contida nele ser exibida.
Podemos tambm utilizar as exceptions para tratar determinadas situaes nos quais
pode haver necessidade de realizar verificaes que no so necessariamente erros, mas
sim valores invlidos, no contexto da aplicao desenvolvida. Por exemplo, considere-
mos que, para ser vlida, a senha (do exemplo de validao de login) deve estar entre
0 e 1000. Essa uma regra da aplicao, porm, analisando o tipo int no qual a senha
armazenada, a faixa de abrangncia vai de -2.147.483,648 a 2.147.483,647, ou seja,
Na linha 50, a senha obtida por meio do componente tpSenha do tipo JPas- estando nessa faixa de valores o compilador no gerar uma exceo. Mas para a mi-
swordField precisa ser convertida para int antes de ser passada por parmetro nha aplicao, um valor informado fora da faixa entre 0 e 1000 uma exceo. Para
na chamada do mtodo validarLogin (linha 56). Se for digitada uma letra no esses casos, podemos utilizar a clusula throw (no confundir com throws, que tem
campo senha, a converso para int (linha 50) gerar uma exception do tipo outro sentido, estudado mais adiante), que realiza uma chamada a uma exceo (fora
NumberFormatException. Perceba que o compilador no nos obriga a tratar uma exceo). Vejamos, na figura 177, como ficar a validao com o uso do throw.
esse erro. Portanto, estamos diante de um Unchecked Exception (outra forma
de identificar o tipo da exceo considerar que NumberFormatException Na linha 58, verificado se a senha informada est fora da faixa de valores pre-
subclasse de RuntimeException). A insero da estrutura de try-catch-finally vista. Se estiver, a exception IllegalArgumentException invocada e capturada
pode tratar essa possvel exceo da forma como ilustra a figura 176. pelo catch da linha 71, onde uma mensagem ser exibida.
Figura 176 Para fechar nossos exemplos de tratamentos de exceo, vamos analisar o com-
Validao com portamento do Java (e os recursos do eclipse) em relao a Checked Exceptions
try-catch-finally.
Figura 177
Validao com
uso do throw.
168 169
Informtica 4 captulo 4
Figura 179
Opes de tratamento.
Como a linha que faz a chamada ao mtodo validarLogin (linha 61) j est
dentro de um bloco de try, basta acrescentar o catch da exception redirecionada
pelo throws, no caso, FileNotFounException (linha 71).
170 171
Informtica 4 captulo 4
possvel capturar uma exceo recorrendo classe Exception (classe me e , portanto, inteiramente compatvel com as classes responsveis pela conexo
das excees), ou seja, qualquer erro ser interceptado. Esse tipo de trata- e manipulao dos dados.
mento desaconselhvel e deve sempre que possvel ser evitado devido fal-
ta de especificao do erro ocorrido. As formas de tratamento de excees
em Java no foram esgotadas nesse captulo, existindo ainda a possibilidade Principais funcionalidades do JDBC
de criao de nossas prprias classes de excees e a manipulao de vrias
outras exceptions. Estabelecer a conexo com o banco de dados
172 173
Informtica 4 captulo 4
Figura 183
Tipo 3: Net protocol all Java driver (Protocolo de rede totalmente Java) Formulrio de
O driver Tipo 3 converte as requisies do SGBD em um protocolo de rede manuteno de clientes
genrico (no vinculado a nenhum SGBD). Essas requisies so enviadas a um pessoa fsica.
servidor middle-tier, que as traduz e encaminha para um SGBD especfico. O
middle-tier funciona como camada intermediria, que implementa certas re-
gras de converso e acesso. Oferece duas vantagens: como o driver e o servidor
intermedirio so alocados no servidor, no h a necessidade de instalao e
configurao das mquinas clientes; indicado para aplicaes web. H uma s
desvantagem: exige a instalao e configurao do servidor intermedirio, bem
como dos driver nativos dos SGBDs utilizados.
Tipo 4: Native protocol all Java driver (Protocolo nativo totalmente Java)
O driver do Tipo 4 inteiramente desenvolvido em Java e converte as requisi-
es de um SGBD em um protocolo de rede especfico para o SGBD utilizado,
assim realizada uma conexo direta entre a aplicao Java e o driver. Apresenta
duas vantagens: por ser totalmente desenvolvido em Java e permitir conexo di-
reta com o SGBD, a aplicao fica independente de plataforma e de instalaes
na mquina cliente; e tambm um drive ideal para aplicaes web. A desvan-
tagem que cada SGBD tem seu prprio driver e nem todos so gratuitos.
Detalhemos, ento, esse relacionamento entre a obteno de dados pelo Figura 185
formulrio e a chamada aos mtodos do objeto clientePF. Primeiramente, Definio de parmetros
na classe ClientePF (no qual ser feita a conexo com o banco e o geren- de conexo como atributos.
ciamento de dados), para termos acesso aos mtodos do Java responsveis
pela interao com bancos de dados, devero ser acrescentados os imports
relacionados na figura 184.
174 175
Informtica 4 captulo 4
Figura 187
4.13.2.1. Classe java.sql.Statement Mtodo incluir na
A classe java.sql.Statement permite a execuo dos comandos fundamentais de classe ClientePF.
SQL. O mtodoConnection.createStatement() utilizado para criar um obje-
todo tipo Statement, que representa uma query (um comando SQL). Existem
dois mtodos de execuo de query na classe Statement.
1.Statement.
4.13.2.2. A classe PreparedStatement
executeQuery(): J a classe java.sql.PreparedStatement contm os mtodos da classe Statement e
executa uma query
outros recursos para elaborao de query, bem como a possibilidade de passa-
e retorna um objeto
gem de parmetros.
do tipo java.sql.
ResultSet (responsvel
por armazenar dados 4.13.2.3. A classe CallableStatement
advindos de uma
consulta SQL) com
A classe java.sql.CallableStatement, por sua vez, permite executar procedimen-
o resultado obtido tos e funes armazenados no banco como, por exemplo, chamadas a stored
(utilizado com select). procedures.
2.Statement.
executeUpdate(): 4.13.3. Incluso
executa uma query e
retorna a quantidade Na Classe FormClientePF, os objetos clientePF e clientePFAuxiliar (previa-
(um valor inteiro) mente instanciados) so do tipo ClientePF e possuem os atributos referen-
de linhas afetadas tes aos dados lidos pelo formulrio, para a incluso. Os atributos do objeto
(utilizado com insert, clientePFAuxiliar so preenchidos com os valores lidos do formulrio como
update e delete). se observa nas linhas 289 a 302, ilustrada na figura 186.
Figura 186
Mtodo
acaoInclusao
na classe
FormClientePF. A classe Connection utilizada para armazenar uma conexo com o banco.
Na linha 324, um objeto desse tipo criado e inicializado com null (vazio).
Na linha 327, quando o mtodo esttico Class.forName() executado, o
driver JDBC do MySQL (contido no atributo servidor) tenta ser inicializa-
do. Carregado o driver, o mtodo Class.forName() ir registr-lo no java.
sql.DriverManager. Na linha 328, a classe DriverManager abre uma cone-
xo com o banco de dados por meio do mtodo getConnection, utilizando
informaes contidas nos atributos urlBanco, usuarioBanco e senhaBanco.
A classe Connection designa um objeto, no caso con, para receber a cone-
xo estabelecida.
Na classe ClientePF, o mtodo incluir recebe um parmetro do tipo ClientePF, Na linha 331, criado um objeto do tipo Statement (com o nome de stmt)
tambm nomeado clientePF (o nome do parmetro, alis, poderia ser qualquer e, na linha 333, executada uma consulta ao banco para obter o ltimo
um, desde que o tipo seja respeitado) e realiza os comandos que podem ser cdigo cadastrado. Este cdigo, armazenado em um objeto do tipo Result-
visualizados em seguida, na figura 187. Set (rs), incrementado (somado mais 1) na linha 335 e usado como novo
176 177
Informtica 4 captulo 4
Figura 189
cdigo na linha 340. O mtodo next do objeto rs (ResultSet) serve para
Mtodo alterar
posicion-lo no primeiro registro e para passar para o prximo registro (no
caso da linha 334, como s haver um registro como retorno, ele fica no na classe ClientePF.
primeiro). Aps a utilizao do objeto rs devemos fech-lo, por meio do
mtodo close (linha 336).
Observe que todas a
Na linha 325 criado um objeto do tipo PreparedStatement, nomeado
linhas de comando
como ps e contendo null (vazio) e, na linha 339, inserido um script de
que fazem a conexo
SQL (um insert) contendo a definio de parmetros (caractere ?). Por meio
e a manipulao dos
do mtodo set (do prprio objeto ps) podemos inserir valores nesse coman-
dados no banco esto
do SQL (insert), passando por parmetro um ndice e o valor que quere-
em uma estrutura
de try e as excees
mos inserir. Por exemplo, na linha 342 est sendo includo o contedo
tratadas nos catch so do atributo nome do objeto clientePF, no terceiro parmetro do objeto ps
ClassNotFoundException (podemos entender que o terceiro caractere ? foi substitudo pelo nome).
(exceo gerada Observe que pelo prprio mtodo set do objeto ps, podemos definir o tipo
se uma das classes que ser inserido (setInt, setString, setDouble etc). Finalmente, quando o
no for localizada) e comando SQL (insert) contido no objeto ps est completo (todos os valores
SQLException (se um armazenados no objeto clientePF foram passados para ele), o mtodo exe-
comando SQL no puder cuteUpdade executado (linha 356) e os valores so includos no banco.
ser executado). No bloco
de finally, a conexo 4.13.4. Alterao
fechada.
Na classe FormClientePF, para a alterao, os atributos do objeto clien-
tePFAuxiliar so preenchidos com os dados do formulrio (linhas 309 a
323), como se observa na sequncia ilustrada na figura 188.
Figura 190
Mtodo acaoExclusao
na classe FormClientePF.
Na classe ClientePF, o mtodo alterar recebe um parmetro do tipo ClientePF
e realiza comandos visualizados na figura 189.
178 179
Informtica 4 captulo 4
180 181
Informtica 4 captulo 4
182 183
Captulo 5
Figura 196
.NET Framework.
AJAX (acrnimo
para a expresso em
O
ingls Asynchronous
Javascript And XML, que
literalmente pode ser
traduzido para Javascript
e XML Assncrono) o Visual Studio um conjunto de ferramentas de desenvol-
nome dado utilizao vimento que contm editores de cdigos, IntelliSense, assistentes e diferentes
metodolgica de
linguagens em um mesmo ambiente de desenvolvimento integrado para prin-
Javascript e XML para
cipiantes e profi ssionais. Apresenta-se em diferentes plataformas: PCs, servido-
fazer com que as pginas
res, aplicaes web e mveis. Em uma viso mais abrangente, o Visual Studio
web se tornem mais
permite o desenvolvimento rpido de aplicativos, recursos de depurao e banco
interativas.
de dados, sem depender dos recursos oferecidos pelo Framework 3.5. Auxilia no
desenvolvimento Web habilitado para o AJAX, contando ainda com os recursos
do ASP.NET.
186 187
InFoRmtICa 4 CaPtulo 5
Figura 197
gem), compilado para uma linguagem intermediria chamada CIL (Common
O Visual Studio.
Intermediate Language ou linguagem intermediria comum), que distribuda
e executada pelos diferentes clientes da aplicao.
Figura 198
Recursos de classes disponveis Janela de Projeto.
System.IO: suporte para o FileSystem, usando classes entre si, elaborados em diferentes linguagens e organizados no formato de pastas
de manipulao de arquivos e diretrios. semelhante ao Windows Explorer. Os arquivos de projetos (.vbproj, .csproj etc.)
e os arquivos de soluo (.sln) esto no formato XML.
System.Resources: usado para traduo do aplicativo em
diferentes idiomas e tambm para retorno de mensagem 5.2.1. Iniciando o Visual Studio Solution
de acordo com o idioma selecionado pelo usurio.
Ao iniciar o Visual Studio pela primeira vez (fi gura 197), surge a tela de Start
System.Text: suporte para a codicao e ao Page (ou pgina inicial). No menu File (arquivo), entre em New (novo) e clique
StringBuilder, para manipulao de Strings. em Project (projeto), como ilustra a fi gura 198.
System.Text.RegularExpressions: suporte Em templates (modelos), escolha o tipo de projeto a ser elaborado (Windows
para expresses regulares. Form Application ou aplicao de formulrio Windows, Console Application
ou aplicao de painel de controle etc.). Lembre-se de nomear o seu projeto e
188 189
Informtica 4 captulo 5
Barra de ferramentas (toolbar), que disponibiliza os botes de comandos mais ToolBox (caixa de ferramentas): contm componentes para o desenvolvimento
utilizados (figura 200). do projeto, os quais esto divididos em guias de acordo com o tipo de aplicao.
Nesse caso, podemos verificar (figura 202) a aba de componentes da categoria
Figura 200 Common Controls (controles comuns).
Toolbar.
Form (formulrio): essa janela (figura 203) receber os componentes da tool-
box e a programao correspondente. Os componentes sero arrastados sobre
o Form para compor a interface do usurio e tero suas propriedades modifica-
das de acordo com o projeto. Para ativar a janela de cdigo e realizar a progra-
Solution Explorer: mostra os arquivos que fazem parte do seu projeto. seme- mao, preciso dar um duplo clique sobre o componente ou formulrio.
lhante ao Explorer do Windows, pois permite criar, excluir e importar arquivos
(figura 201). Properties (propriedades): permite alterar as propriedades dos componentes, que
podem aparecer organizadas por categoria ou em ordem alfabtica (figura 204).
Se analisarmos uma aplicao Windows Form Application em C#, dentro da
janela Solution, podemos encontrar os seguintes arquivos: Form1.cs, para pro- A janela de propriedade traz, de acordo com cada componente toolbox, uma srie de
recursos para configurao. Por exemplo, um componente Label (rtulo), utilizado
Figura 201
Solution Explorer. Figura 203
Form.
190 191
Informtica 4 captulo 5
Figura 208
Fixar janela.
para incluir expresses no projeto, possuindo diversas propriedades tais como name
(nome), text (texto), visible (visvel), font (fonte), forecolor (cor) e que podero ser
manipuladas diretamente na janela ou por meio de programao, utilizando a nota-
o de ponto, conforme o seguinte cdigo, que oculta o Label: Auto Hide: um apontador indica a posio da janela, que ficar oculta. Basta
um simples movimento do mouse sobre o ttulo dessa janela (figura 207) para
Label1.Visible = false; que ela seja aberta. Para fix-la, utilize o cone semelhante a um preguinho
(figura 208), localizado na barra de ttulo.
Code and Text Editor (editor de texto e de cdigo) a janela que utilizaremos para
implementar os cdigos de programao (figura 205). Para acess-la, basta clicar duas Podemos movimentar as janelas e coloc-las em qualquer lugar da aplicao com a
vezes sobre ela ou em qualquer componente. Outra opo usar os botes Code (c- ajuda dos guias. Para isso, clique na barra de ttulo e mantenha o boto do mouse
digo) e View (visualizar) na janela de Solution Explorer, como mostra a figura 206. pressionado, arrastando a janela para qualquer rea de seu desktop. Imediatamen-
te, surgiro as indicaes das guias (figura 209). Escolha uma delas e solte a janela.
Figura 205
Code and text Editor. Figura 209
Guias de janelas.
Figura 206
Em destaque, os botes
Code e View.
Hide: fecha aquela janela e, para abri-la novamente, usa o menu View. Label1 = lblPergunta
Floating: a janela fica flutuante, podendo ser deslocada para qualquer parte Label2 = lblMensagemAlerta
do desktop.
192 193
InFoRmtICa 4 CaPtulo 5
A tabela 12 mostra alguns dos vrios prefi xos utilizados na plataforma .NET. Durante essa atividade, podemos recorrer a alguns botes auxiliares (fi gura 212)
como Break, Stop e Restart.
tabela 12
PREFIXOS USADOS NA .NET
Componente Prexo Componente Prexo 5.2.7. Identificao de erros
O Visual Studio nos ajuda a identifi car ou interpretar alguns erros que po-
label lbl listBox lst dem ocorrer durante o processo de criao ou execuo do cdigo. Confi ra
textBox txt Datalist Dtl alguns, a seguir.
DataGrid dtg Repeater Rep
Erro de sintaxe: geralmente identifi cado com uma linha em vermelho su-
Button btn Checkbox Chk blinhando a expresso. No exemplo mostrado na fi gura 213, esto faltando as
aspas no fechamento da expresso.
ImageButton imb CheckBoxlist Cbl
DropDownlist ddl RadioButton Rdo Figura 213
Erro de sintaxe.
RadioButtonlist rbl PlaceHolder PhD
Image img table tbl
Panel pnl Validators Val
Erro antes da execuo: quando o cdigo apresenta algum erro e uma execu-
o forada, uma caixa de dilogo solicita ao usurio que continue a execuo
5.2.5. IntelliSense do cdigo, mesmo constando erro (fi gura 214). Isso faz com que a ltima verso
correta seja executada, ignorando a atual.
Ao digitar alguma instruo, aparecer uma srie de complementos relacionados
a ela. Quando escrevemos Console, por exemplo, so disponibilizados vrios Figura 214
mtodos. Com a ajuda da tecla Tab ou da Barra de Espao, a instruo se com- Janela de erro.
pe naturalmente (fi gura 210).
Figura 210
IntelliSense.
Instruo
194 195
Captulo 6
C Sharp
Programao
Tipos de dados e variveis
Operadores
Estrutura de deciso
Estruturas de repetio usadas na linguagem
Tratamento de erros / excees
Vetores e matrizes
Classes
Windows Form Application - componentes
Eventos
Informtica 4 captulo 6
Figura 217
Console Application.
198 199
InFoRmtICa 4 CaPtulo 6
ATENO:
RECOMENDAES PARA A BOA PRTICA No momento da
Se houver mais de uma palavra, a primeira letra da segunda deve ser programao,
maiscula: fundamental ficar alerta
nomeCliente para ver onde o cdigo
pesoMedio ser inserido. Portanto,
idadeMaxima identifique corretamente
Pode-se usar um prefi xo para expressar, no incio da varivel, o tipo o componente e o evento
de dado ao qual ela pertence: que ser agregado. As
strNomeCliente instrues bsicas de
floPesoMedio programao sero
intIdadeMaxima apresentadas, aqui,
utilizando-se o mtodo
Console Application, pois
6.2.1. alocao de memria a sua estrutura a
6.2. tipos de dados e variveis mesma para aplicaes
A alocao e a utilizao de variveis de memria podem ser realizadas de duas grficas do Windows
Os tipos de dados em C# so distribudos da forma como apresenta a tabela 13. maneiras: Stack (pilha) e Heap (amontoado). A diferena entre elas est na for- Form Application.
ma como cada uma trata as informaes.
Utilizamos as variveis para armazenar diferentes tipos de dados (nmeros, pa-
lavras, data etc.), como j foi mostrado antes. Para a criao de uma varivel, Stack: Nessa rea, fi cam as variveis locais ou os parmetros de funes de valor
deve-se dar um nome nico, que identifi que o seu contedo (consulte o quadro ou referncia. Sua limpeza realizada automaticamente na sada de cada funo,
Recomendaes para a boa prtica). usando return ou no.
200 201
InFoRmtICa 4 CaPtulo 6
Figura 222
Heap: Aqui, fi cam os valores referentes aos objetos. Isso ocorre quando uma static void Main(string[] args) Usando o
classe estabelecida usando o new (construtores). Caso as funes sejam encer- {
radas ou ocorra um exception, a limpeza no acontece automaticamente e sim mtodo Readkey.
Console.WriteLine(Verificando os Operadores);
por meio do Garbage Colletor. int x = 10;
int y = 15;
6.3. operadores Console.WriteLine(Soma: + (x + y));
Console.WriteLine(Subtrao: + (x - y));
Exemplos prticos para mostrar a funcionalidade dos operadores so executados Console.WriteLine(Multiplicao: + (x * y));
no Console Application, como j foi mencionado. Console.WriteLine(Diviso: + (y / x));
Console.WriteLine(Diviso (10/3): + (x / 3));
6.3.1. operadores aritmticos Console.WriteLine(Resto da Diviso (10/3): + (x % 3));
Console.ReadKey();
Para visualizar o efeito dos operadores (indicados no quadro Aritmticos), utilize }
a classe Console(), a qual, pelo mtodo WriteLine(), revela uma expresso ou
um contedo de uma varivel com a quebra de linha automtica. J o Write()
Figura 223
realiza a impresso sem a quebra de linha. static void Main(string[] args) Aplicao de
{ operadores aritmticos
ARITMTICOS Console.WriteLine(Operadores Reduzidos); de atribuio reduzida.
+ adio int x = 10;
- Subtrao int y = 15;
* multiplicao Console.WriteLine(Soma + igual: + (x += 2));
/ Diviso Console.WriteLine(Subtrao + igual: + ( y -= 10));
% Resto da diviso
// x est com novo valor !!!
Console.WriteLine(Multiplicao + igual: + (x *= 2));
6.3.2. operadores relacionais Console.WriteLine(Diviso + igual: + (x /= 2));
Console.WriteLine(Resto da Diviso + igual: + (x %=5));
RELACIONAIS Console.ReadKey();
}
> maior que
< menor que
>= maior ou igual a
<= menor ou igual a 6.3.4. operadores de incremento e decremento
== Igual
!= Diferente
OPERADORES
++ Incremento
6.3.3. operadores aritmticos de atribuio reduzida
-- Decremento
202 203
InFoRmtICa 4 CaPtulo 6
Figura 227
6.3.5. operadores lgicos Classe Convert.
Convert.ToUInt16(indade);
OPERADORES Convert.ToDouble(salario);
204 205
Informtica 4 captulo 6
206 207
Informtica 4 captulo 6
Figura 233
Observe, na figura 236 como fica o mesmo exemplo de quebra de loop com a
Do While(). static void Main(string[] args)
{ instruo break, agora dentro da instruo While().
Console.WriteLine(Estrutura DO...WHILE);
int cont=0; static void Main(string[] args) Figura 236
do { Exemplo com break
{ dentro de While().
Console.WriteLine(Numero: + cont); Console.WriteLine(Estrutura BREAK);
cont++; int num=0;
} while (cont <= 10); while (num < 1000) {
Console.ReadKey(); num +=10;
} if (num > 100){
break;}
Console.WriteLine(O nmero : + num);
6.5.3. For() }
Console.WriteLine (Mensagem aps o lao);
Diferente do While(), a instruo For() capaz de definir, em uma nica linha, Console.ReadKey();
a varivel e o seu tipo, bem como estabelecer a condio para a estrutura e indi- }
car o contador (figura 234).
Figura 234 A instruo Continue fora a execuo do loop a partir do ponto em que est.
Instruo for(). static void Main(string[] args) No exemplo (figura 237), ser forada a contagem quando a varivel num
{ possuir o valor 100. Como resultado dessa operao, o valor 100 no ser apre-
Console.WriteLine(Estrutura FOR); sentado na tela.
for(int cont=0; cont<=10; cont++)
{ Figura 237
Console.WriteLine(Numero: + cont); static void Main(string[] args)
Exemplo de uso
} {
da instruo continue.
Console.ReadKey(); Console.WriteLine(Estrutura CONTINUE);
} int num=0;
while (num < 1000){
num += 1;
6.5.4. Break e continue if (num == 100)
{
As instrues break e continue podem interferir diretamente em um lao de
continue;
repetio. No prximo exemplo (figura 235), quando a varivel cont tiver o
}
valor 5, o loop ser encerrado, executando a prxima instruo aps o fecha-
Console.WriteLine(O nmero : + num);
mento da estrutura.
}
Console.WriteLine (Mensagem aps o lao);
Figura 235
static void Main(string[] args) Console.ReadKey();
Instrues break
{ }
e continue.
Console.WriteLine(Estrutura BREAK);
int num;
for (num = 0; num < 10; num++) Na figura 238, confira outro exemplo da instruo continue, agora, dentro de
{ uma estrutura for().
if (num == 5){
break; static void Main(string[] args) Figura 238
} Exemplo de uso da instruo
Console.WriteLine (O nmero : + num); {
Console.WriteLine(Estrutura CONTINUE); continue dentro de for().
}
Console.WriteLine (Mensagem aps o lao); for (int num = 0; num <= 10; ++num)
Console.ReadKey(); {
} if (num == 5){
208 209
Informtica 4 captulo 6
Figura 239
continue; try
Converso do contedo
} {
de dois TextBox.
Console.WriteLine(O nmero : + num); double var01 = double.Parse(txtLado01.Text);
double var02 = double.Parse(txtLado02.Text);
}
double resp = var01 * var02;
Console.WriteLine (Mensagem aps o lao);
txtResp.Text = resp.ToString();
Console.ReadKey(); }
} catch
{
MessageBox.Show(Dados Incorretos);
6.6. Tratamento de erros / excees }
Uma das tarefas mais importantes dos programadores saber realizar o trata-
mento de erros (consulte o quadro Erros mais comuns) e excees que podem No caso da implementao do cdigo com o finally, teramos uma instruo
Erros mais comuns ocorrer durante a execuo de um projeto. Seja por uma operao invlida ou ou um bloco de instrues sendo executados, independentemente da existncia
Rede ou Internet: geralmente at mesmo devido abertura de determinado arquivo inexistente. Para isso, de uma exception. Ou seja, sempre ser executado o bloco do finally, como
por problemas de conexo utilizamos uma estrutura bem familiar: o try-catch-finally (j abordado ante- possvel observar na figura 240.
(servidor, linha etc.). Drive: riormente, quando falamos de Java).
falta da unidade de disco. Path: Figura 240
caminho para a localizao try Implementao do
de arquivos em geral. Try { { cdigo com o finally.
Impressora: equipamento // instruo que pode gerar o erro de execuo
double var01 = double.Parse(txtLado01.Text);
no disponvel, sem tinta }
Catch double var02 = double.Parse(txtLado02.Text);
ou sem papel. Componente
{ double resp = var01 * var02;
no instalado: falta algum
componente de software // o que deve ser feito se ocorrer o erro txtResp.Text = resp.ToString();
ou est com erro de execuo. } }
Permisso: privilgio para acesso catch
de arquivos, dados ou rea {
de rede. Clipboard: problema Outra possibilidade incluir o finally, o que opcional, pois ele sempre ser MessageBox.Show(Dados Incorretos);
com dados transferidos para executado, ocorrendo exceo ou no.
determinada rea. }
finally {
Try { MessageBox.Show(Mensagem de Finalizao, Mensagem);
// instruo que pode gerar o erro de execuo }
}
Catch
{
6.6.1. Exception
// o que deve ser feito se ocorrer o erro
} Quando o bloco catch{} executado, poder ser disparada uma exceo. Isso
Finally significa que foi gerado um cdigo de erro e uma descrio correspondente.
{ Cada erro possui caractersticas diferentes. Com bases nessas informaes, po-
// opcional, mas executado demos especificar o nmero do erro gerado.
}
210 211
InFoRmtICa 4 CaPtulo 6
Figura 241
// matriz do tipo double
Emisso de try
{ double[,] matriz;
mensagens de erro.
double var01 = double.Parse(txtLado01.Text); matriz = new double[2,2];
double var02 = double.Parse(txtLado02.Text); matriz[0,0] = 1;
double resp = var01 * var02; matriz[0,1] = 2;
txtResp.Text = resp.ToString(); matriz[1,0] = 3;
} matriz[1,1] = 4;
catch (Exception erro) // erro o objeto de controle MessageBox.Show(matriz[1,1].ToString());
{
MessageBox.Show(Dados Incorretos: Fornea apenas valores
// matriz do tipo inteiro
numricos);
MessageBox.Show(erro.Message); int[,] temp = { { 1, 4 }, { 2, 7 }, { 3, 5 } };
MessageBox.Show(erro.Source); MessageBox.Show(temp[1, 1].ToString());
}
finally {
MessageBox.Show(Mensagem de Finalizao, Mensagem); 6.8. Classes
}
Usando os mesmos conceitos do Java, o C# pode implementar classes espec-
fi cas para programao, as quais seguem os mesmos princpios de formao e
manipulao. Para relembrar os conceitos de programao orientados a objetos,
6.7. Vetores e matrizes observe o exemplo a seguir e, depois, confi ra a classe na fi gura 243.
Vamos ver agora, na fi gura 242, a forma de declarao, atribuio e acesso Uma classe chamada Carro tem atributos referentes ligados a marca, combus-
aos valores para diferentes tipos de vetores e matrizes. Uma boa dica, para tvel e marcha e, ainda, os mtodos movimentar(), parar() e consultar(), que
essa etapa, revisar os conceitos a respeito, no tema programao em Java. representam:
Figura 242 Movimentar(): indica a velocidade com que o veculo deve andar.
Vetores e matrizes. // vetor do tipo String
string[] j; Parar(): quando acionado, diminui em uma unidade a velocidade do veculo.
j = new string[2];
j[0] = seg; Consultar(): informa a atual velocidade do veculo.
j[1] = ter;
MessageBox.Show(j[0]); Figura 243
Diagrama de classe.
string[] semana = { dom, seg, ter, qua, qui, sex }; Carro
MessageBox.Show(semana[0]);
+ marca : String
// vetor do tipo float + com : String
float[] y;
+ marcha : int
y = new float[3];
y[0] = 10.5F;
- velocidade : int
y[1] = 7.3F;
y[2] = 1.9F; + movimentar (acelerao : int) : void
+ parar() : void
// vetor do tipo inteiro + consultar() : int
int[] x = { 10, 5, 3 };
MessageBox.Show(x[0].ToString());
212 213
InFoRmtICa 4 CaPtulo 6
Observe, ento, na fi gura 244, como fi caria a classe, seguindo o diagrama. // imprime os dados do veculo e combustivl
Console.WriteLine(Veculo: + objCarro.marca + de + objCarro.
Figura 244 marcha + marchas);
Como ficou a classe, de class Carro Console.WriteLine(Combustvel: + objCarro.comb + \n);
acordo com o diagrama. {
// atributos da classe carro // inicia a movimentao do carro com velocidade 5
public string marca; objCarro.movimentar(5);
public string comb;
public int marcha; // consulta a velocidade do veculo
private int velocidade; velocidade = objCarro.consultar();
Figura 246
Analisando o cdigo principal main(), na fi gura 245, veja o que aparece. Classe Pessoa.
Pessoa
Figura 245
Analisando o cdigo main(). static void Main(string[] args) - codigo : int
- nome : String
{ - endereco : String
// instanciando a classe Carro - bairro : String
Carro objCarro = new Carro(); cidade : String
- uf : String
- telefone : String
// atribui os valores para o OBJ - celular : String
objCarro.marca = Fusca;
objCarro.comb = Querozene; * mostrartelefones() ; void
objCarro.marcha = 4;
214 215
InFoRmtICa 4 CaPtulo 6
Figura 247
Uso de getters e setters. public class Pessoa PROPRIEDADES FORM
{
name modifica o nome
private int codigo;
text atualiza a barra de ttulo do formulrio
private string nome;
private string endereco; Backcolor Cor de fundo do formulrio
private string bairro; BackgroundImage Insere uma imagem como plano de fundo em um formulrio
private string cidade; BackgroundImagelayout ajusta a posio da imagem em relao ao formulrio
private string uf; ControlBox Desativa os botes maximizar, minimizar e fechar
private string telefone; FormBorderStyle muda as configuraes de visualizao do formulrio
private string celular; Icon Insere um cone no formulrio
maximizeBox Permite ou no ao usurio maximizar
public int setCodigo(int novoCodigo){ minimizeBox Permite ou no ao usurio minimizar
this.codigo = novoCodigo; Size Define a largura e a altura do formulrio
} WindowState Define o modo como o formulrio ser aberto: maximizado, minimizado, etc.
public int getCodigo(){
return this.codigo;
}
public String setNome(String novoNome){ 6.9.2. Button
this.nome = novoNome;
} O Button (boto), apresentado na fi gura 249, o responsvel por grande parte
public int getNome(){ da nossa programao. Ao clicar sobre esse componente, acessamos a janela de
return this.nome; cdigos, na qual o primeiro evento est previamente selecionado, nesse caso
} click. Isso indica que o cdigo ser executado quando dermos o clique sobre o
// o get e set dever ser construdo para os demais atributos
} boto (fi gura 250). Confi ra detalhes no quadro Propriedades Button.
Figura 249
6.9. Windows Form application componentes Button.
6.9.1. Form
Ao iniciar a aplicao do Form (formulrio), ser disponibilizado o Form1
(nome padro) para o desenvolvimento dos trabalhos. Esse o repositrio prin-
cipal para os nossos componentes (fi gura 248). Confi ra os detalhes no quadro
Propriedades Form.
rea de programao
Figura 248
Form.
PROPRIEDADES BUTTON
name modifica o nome
text texto para o boto
BackColor modifica a cor do boto
BackgroundImage Insere uma imagem como plano de fundo
BackgroundImagelayout ajusta a posio da imagem em relao ao boto
Visible Define se esse boto est visvel ou no
216 217
InFoRmtICa 4 CaPtulo 6
Figura 252
Label.
PROPRIEDADES LABEL
name modifica o nome
6.9.6. listBox
text Insere um texto predefinido
BackColor Cor de fundo da caixa de entrada, local onde Diferentemente do ComboBox, o ListBox (caixa de lista) disponibiliza
as informaes sero inseridas vrias opes aos usurios, porm, em forma de lista. Isso permite a
utilizao de barra de rolagem caso o nmero de opes ultrapasse o
ForeColor Cor da fonte
limite da caixa da janela (figura 255). Consulte o quadro Propriedades
Font Define a fonte do texto
ListBox.
218 219
InFoRmtICa 4 CaPtulo 6
Figura 255
ListBox. PROPRIEDADES CHECKBOX
name modifica o nome
Para verifi car o que foi selecionado pelo usurio, devemos realizar o teste em
cada um dos elementos. Assim, implementaremos o cdigo anterior com um
boto, para verifi cao dos itens selecionados, cuja sada ser uma caixa de di-
logo contendo todas as informaes selecionadas (fi guras 258 a e 258 b).
PROPRIEDADES LISTBOX
Figuras 258 a e 258 b
name modifica o nome
Verificao da caixa CheckBox.
DataSource Pode ser ligado a uma base de dados Datatable
220 221
InFoRmtICa 4 CaPtulo 6
Figura 261
O detalhamento private void btnVerificar_Click(object sender, EventArgs e) PROPRIEDADES AGRUPAMENTO
da verificao. { name modifica o nome
string frase = Seu estado Civil :;
text ttulo da caixa de grupo
if (rdbCasado.Checked == true)
frase = frase + Casado;
if (rdbSolteiro.Checked == true)
frase = frase + Solteiro; 6.10. Eventos
MessageBox.Show(frase, Titulo);
} Para cada componente inserido na aplicao, incluindo o formulrio, podemos
manipular eventos distintos. O evento a forma com que a classe se manifesta
quando o usurio interage com os componentes do formulrio: com um clique,
PROPRIEDADES RADIOBUTTON duplo clique, passagem de mouse etc. Por exemplo, ao inserir um boto para fi na-
lizar a aplicao, devemos associar o cdigo a um determinado evento, no caso, o
name modifica o nome
clique. Na fi gura 264, podemos verifi car a identifi cao do boto de acordo com a
text Insere a texto da opo atribuio do seu name e com o evento que receber a programao.
CheckState Deixa a opo j selecionada
Figura 264
Nome do boto indicado Evento Listagem dos eventos Eventos.
6.9.8.1. agrupamento na propriedade name. e componentes
Figura 262
Container
GroupBox.
Para modifi car os eventos, podemos utilizar a janela de Properties (fi gura 265)
com o boto Events, semelhante a um raio.
Figura 265
Para modificao
de eventos.
Figura 263
RadioButton e
GroupBox.
222 223
Captulo 7
Visual Basic.NET
Programao
Tipos de dados e variveis
Operadores
Estrutura de deciso
Estrutura de repetio
Tratamento de erros e excees
Vetores e matrizes
Classes
Windows Form Application - componentes
Eventos
InFoRmtICa 4 CaPtulo 7
Figura 267
Abas da janela Code.
Integer Inteiro de 32 bits com sinal (-2 147 483 648 a 2 147 483 647)
ulong Inteiro de 64 bits sem sinal (0 a 18 446 744 073 709 551 615)
Inteiro de 64 bits com sinal (-9 223 372 036 854 775 808
long
a 9 223 372 036 854 775 807)
226 227
InFoRmtICa 4 CaPtulo 7
- Subtrao
* multiplicao
7.2.1. atribuio DIm
/ Diviso
Para a defi nio das variveis em VB, utilizaremos a instruo DIM, o nome da \ Diviso de um valor por outro e retorna somente
varivel e o seu tipo. Confi ra no exemplo ilustrado pela fi gura 269. a parte inteira do resultado
mod Resto da Diviso
Figura 269
Dim x & Combina (concatena) Strings
Instruo DIM.
Dim y As Integer ^ Expoente (potncia)
Dim nome As String
Dim endereco, cidade, estado As String
Figura 272
Dim md = 10
Sub Main() Exemplo de operadores
Dim salario As Double
Console.WriteLine(Verificando os Operadores) aritmticos.
Dim x = 10
7.2.2. Variveis globais Dim y = 15
Console.WriteLine(Soma: & (x + y))
Podemos defi nir, dentro das rotinas tendo visibilidade local, o cdigo mostrado Console.WriteLine(Subtrao: & (x - y))
na fi gura 270. Console.WriteLine(Multiplicao: & (x * y))
Console.WriteLine(Diviso: & (y / x))
Figura 270 Console.WriteLine(Parte inteira da diviso: & (x \ 3))
Private Sub Form1_Load()
}
Cdigo para definio. Console.WriteLine(Resto da Diviso (10/3): & (x Mod 3))
Dim nome As String
Dim valor As Integer Console.WriteLine(Bom & Dia & aluno)
Visibilidade Console.WriteLine(Quadrado de trs: & 3 ^ 2)
nome =
dentro da rotina Console.ReadKey()
valor = 0
End Sub End Sub
Outra alternativa fazer o mesmo dentro da classe, para que possam ser aces- 7.3.2. operadores relacionais
sadas por outras rotinas da mesma classe. O cdigo ilustrado na fi gura 271
implementa variveis de visibilidade pblicas dentro da aplicao. RELACIONAIS
Figura 271 > maior que
Public Class Form1
Cdigo implementando
variveis.
Public frase As String
Public calc As Double } Visibilidade global < menor que
}
Dim nome As String
Dim valor As Integer Visibilidade dentro
<= menor ou igual a
nome =
valor = 0 da rotina = Igual
End Sub
End Class <> Diferente
228 229
InFoRmtICa 4 CaPtulo 7
Figura 274
7.3.3. operadores aritmticos de atribuio reduzida Exemplos de
x = CInt(idade)
converses.
ARITMTICOS y = CSng(salario)
+= adio Igual
z = CInt(Console.ReadLine())
-= Subtrao Igual dt = CDate(01/01/2010)
*= multiplicao Igual
/= Diviso Igual
230 231
Informtica 4 captulo 7
7.5.4. For
7.5. Estrutura de repetio
Diferentemente da instruo While(), a instruo For capaz de definir, em
Vamos conhecer agora as estruturas de repetio utilizadas na linguagem. uma nica linha, a varivel e o seu tipo, bem como estabelecer a condio para
a estrutura e indicar o contador (figura 282).
7.5.1. While()
7.5.5. For...Step
Usando a varivel cont para controle do loop, sero visualizados os nmeros
de 0 at 10. O importante em uma instruo While() a implementao de Contar de 0 a 10, mostrando o resultado. No entanto, dessa vez o contador
um contador dentro da estrutura (figura 279). ser incrementado de 2 em 2 (figura 283).
232 233
Informtica 4 captulo 7
Figura 285
7.6. Tratamento de erros e excees vetor de string Formas de declarao
Dim j(2) As String de vetores e matrizes.
Nas verses anteriores do Visual Basic, o tratamento de erro era controlado j(0) = seg
pela instruo On error go to, ainda mantido por questes de compatibi- j(1) = ter
lidade. Porm, prefira utilizar o try-catch-finally, que possui as mesmas MsgBox(j(0))
caractersticas estudadas anteriormente, mas com mudanas em suas linhas
de programao, como podemos verificar no exemplo a seguir: vetor de string
Dim semana() As String = {dom, seg, ter, qua, qui, sex}
MsgBox(semana(0))
Try
instrues que podem gerar o erro de execuo vetor tipo Single
Catch Dim y(3) As Single
o que deve ser feito se o erro ocorrer y(0) = 10.5
Finally y(1) = 7.3
opcional, mas executado y(2) = 1.9
End Try MsgBox(y(1))
234 235
Informtica 4 captulo 7
Figura 286
Form. 7.9.5. ComboBox
O ComboBox permite abrir uma cortina de opes ao usurio (figura 291).
Figura 291
7.9.2. Button ComboBox.
Figura 287 a e b
Button.
Para a insero de itens, uma nova caixa de dilogo ser aberta e os itens deve-
ro ser colocados um abaixo do outro (one per line). Aps a confirmao de tal
execuo, teremos o ComboBox carregado com as informaes (figura 292).
Figura 288
Nome do boto e evento Figura 292
Evento Click.
ComboBox
carregado.
236 237
Informtica 4 captulo 7
Figura 296
7.9.6. ListBox Verificao da
caixa CheckBox.
O ListBox tambm disponibiliza vrias opes aos usurios, s que so abertas
com barra de rolagem (figura 293).
Figura 293
ListBox.
7.9.8. RadioButton
Vamos utilizar o mesmo exemplo do C# e solicitar ao usurio a escolha do esta-
do civil (figura 298 e, com detalhes, na figura 299).
Figura 295
CheckBox.
Figura 299
Dim frase As String
Detalhes da opo
frase = Seu estado Civil :
do RadioButton.
If rdbCasado.Checked = True Then
frase = frase + Casado
End If
If rdbSolteiro.Checked = True Then
frase = frase + Solteiro
A figura 296 mostra como fazer a verificao de seleo por meio de um boto. End If
MsgBox(frase, , Mensagem)
O cdigo descrito na figura 297 referente apenas ao evento click, o qual est End Sub
relacionado ao boto de verificao.
238 239
InFoRmtICa 4 CaPtulo 7
7.9.8.1. agrupamento Na outra extremidade da janela Code, h a lista de todos os eventos disponveis
para o componente (fi gura 303). Ao escolher um deles, automaticamente uma
Use um container para realizar o agrupamento dos componentes RadioButton, rea de cdigo ser criada, para onde o cursor ser deslocado.
assim como no mesmo exemplo de C# (fi gura 300). Confi ra, em seguida, o
quadro Propriedades RadioButton. Figura 303
Eventos.
Figura 300
Agrupamento.
PROPRIEDADES RADIOBUTTON
name modifica o nome
7.10. Eventos
Existe uma maneira muito fcil de controlar os eventos em VB. Na parte supe-
rior da janela de Code, como mostra a fi gura 301, aparecem todos os componen-
tes inseridos no formulrio, incluindo o prprio formulrio.
Figura 301
Componentes.
Clique para abrir o combo de opes (fi gura 302), franqueando o acesso aos
componentes.
Figura 302
Componentes
acionados.
240 241
Captulo 8
ASP.NET
Aplicao ASP.NET
Eventos
HTML Server Controls
e Web Server Controls
Sesses em ASP.NET
Dados via URL
InFoRmtICa 4 CaPtulo 8
A
Como ilustra a fi gura 304, partir da ao do usurio, o navegador cria a requi- pginas HTML dinmicas,
sio de uma pgina Web ou ativa um determinado servio. Isso faz com que a que, diferentemente de outros
SP.NET uma plataforma de desenvolvimento usada para a cons- parte lgica da pgina entre em ao. A resposta ser no formato HTML, devi- servidores web, funciona com
truo de aplicaes Web e Web Service, as quais sero executadas damente confi gurada como, por exemplo, a forma grfi ca que ser apresentada tecnologia proprietria ASP
por um servidor, que, nesse caso, o IIS (Internet Information ao usurio (formatao). (Active Server Pages, pginas
Service servio de informao de Internet) da Microsoft. No se trata apenas de servidor ativas), mas tambm
de uma tecnologia de desenvolvimento, mas de um conjunto de ferramentas que pode usar outras tecnologias com
8.1.2. Web Form
permite a integrao entre servidores Microsoft, segurana, cdigo compilado, a adio de mdulos de terceiros.
e acesso a bancos de dados via ADO.NET e ao .NET Framework, bem como Um Web Form pode conter os seguintes componentes: Server Controls (con- Para ter acesso a essa ferramenta,
suporte total ao XML. troles de servidor): TextBox, Label e Button, que permitem controlar e res- necessrio adquirir licena de
ponder a determinados eventos do servidor. HTML Controls (controles de uso. E para cada instalao ou
verso exigido um pagamento.
8.1. aplicao aSP.nEt HTML): TextArea, Table e Image, que representam os elementos padres do
Depois do lanamento da
HTML. Data Controls (controles de dados): SqlConnection, SqlCommand,
plataforma .NET em 2002,
Uma aplicao ASP.NET constituda por trs partes (fi gura 304): OleDbConnection, OleDbCommand e DataSet, que fornecero mecanismos
o IIS ganhou tambm a funo
Contedo: arquivos do tipo Web Forms, HTML, imagens, udio e vdeo, que para manipulao de arquivos XML e conexo com bancos de dados (SQL).
de gerenciar o ASP.NET, formado
determinam a aparncia de uma aplicao Web. System Components (componentes de sistema): EventoLog, Message Queue e
basicamente por dois tipos
Lgica: arquivos executveis e script, que determinam como uma aplicao res- FileSystemWatcher, os quais permitem manipular eventos do servidor.
de aplicaes: Pginas Web
ponder s aes dos usurios.
(acessadas por usurios com
8.1.3. Projeto Web application (aplicao Web) a extenso ASPX) e Web Services
Figura 304 (funes disponibilizadas
Funcionamento de Para iniciar uma Web Application, escolha, em Project Types, Visual Basic, e pela rede, chamadas
um Web Service. depois a opo Web na template ASP.NET Web Application (fi gura 305). No de aplicativos ASMX).
Figura 305
Aplicao ASP.NET.
244 245
Informtica 4 captulo 8
8.1.4. Ciclo de vida da Aplicao Assim como nas aplicaes em C# ou VB.NET, podemos utilizar a ToolBox
para arrastar os componentes usados no desenvolvimento do layout da pgina
Uma aplicao Web comea no momento em que o navegador faz a requisi- Web. Para isso, preciso mudar a viso para Design (figura 308).
o na sua pgina principal. Inicialmente, executa o assembly (.dll), criando
uma instncia do Web Form. Essa, por sua vez, responder requisio do Se preferir ir diretamente ao cdigo, mude para Source, escreva e grave o seu
usurio no formato HTML, sendo destruda posteriormente. Caso o usurio cdigo e verifique o resultado final no navegador (figuras 309 a e b).
no realize nenhuma requisio, a instncia poder ser excluda depois de um
determinado tempo. Figura 309a
Verificando o
<html xmlns=http://www.w3.org/1999/xhtml >
8.1.5. Executando uma Application Service (Servio de Aplicao) resultado final.
<head runat=server>
Execute uma Application Service da mesma forma que faz em um Windows <title>Untitled Page</title>
Form Application. Dessa vez, porm, no teremos a aplicao rodando como </head>
anteriormente, mas sim uma porta lgica que ser criada para o servidor IIS. <body>
O navegador padro da mquina ser ativado para mostrar a aplicao, con- <form id=form1 runat=server>
forme ilustra a figura 307. Podemos observar que aparece na URL a expresso <div>
localhost, indicando que o servio est operando como um servidor local. O Minha Primeira Pgina em ASP</div>
nmero que surge aps essa expresso representa a porta lgica da mquina, o </form>
qual no padro e poder ser modificada a cada execuo. </body>
</html>
Toda e qualquer modificao no cdigo dever ser gravada por meio da atualiza-
o da pgina e poder ser visualizada posteriormente. Para isso, basta pressionar
Figura 309b
a tecla F5. Caso seja usado o boto break, a janela do navegador ser fechada.
Minha primeira
aplicao.
Figura 307
Servidor em
Execuo.
246 247
Informtica 4 captulo 8
Figura 312
<html xmlns=http://www.w3.org/1999/xhtml > 8.2. Eventos
Tags com incluso
<head runat=server>
de atributo Para que o cdigo seja executado no momento correto, podemos utilizar os
<title>Exemplo em ASP - VB</title>
runat=server. manipuladores de evento. O cdigo seguinte determinar o momento em que a
</head>
verificao da data/hora dever ser lida no servidor (figura 314). O manipulador
248 249
Informtica 4 captulo 8
Figura 315b
realizar uma sub-rotina quando determinado evento ocorrer. No exemplo an-
Detalhamento do uso
terior, o evento Page_Load executado quando uma pgina carregada. <html xmlns=http://www.w3.org/1999/xhtml >
do Server Control.
<head runat=server>
Figura 314
<title>Exemplo em ASP - VB</title>
Verificao de
<html xmlns=http://www.w3.org/1999/xhtml > </head>
data e hora.
<head runat=server> <body>
<title>Exemplo em ASP - VB</title>
<p id=lblLogin>rea Restrita - Usando Web Control</p>
</head>
<script runat=server> <p>Login:
Sub Page_Load(Sender As Object,E As EventArgs) <input id=txtLogin type=text /></p>
Tempo.Text = Now() <p id=lblSenha>
End Sub Senha:
</script>
<input id=pwdSenha type=password /></p>
<body>
<p><asp:label id=Tempo runat=server/></p> <p>
</body> <input id=btnEnviar type=button value=Enviar />
</html>
<input id=btnCancelar type=button value=Cancelar /></p>
</body>
8.3. HTML Server Controls e Web Server Controls </html>
A construo de uma pgina Web poder ser feita de duas formas: por meio do
HTML Server Controls ou do Web Server Controls. Isso depende diretamente
dos componentes da Toolbox. No existe regra para se utilizar um ou outro. Assim como ocorreu em C# e VB.NET, a janela de Properties dever ser utili-
Porm, recomendvel optar pelo HTML Controls, em caso de migrao do zada para ajustes e identificao dos componentes (figura 316).
ASP para o ASP.NET. J o Web Controls indicado para situaes em que os
componentes precisam de mais funcionalidade, pois ele permite a programao Figura 316
e incorporao de recursos do Framework. Janela Properties.
Figura 315a
Usando Server
Control.
250 251
Informtica 4 captulo 8
mos que utilizar os recursos das variveis de sesso, ou seja, definir uma
chave e atribuir um valor para ela. As sesses so criadas pelo comando
Session(), que identifica as variveis criadas pelo programador. Exemplo:
Figura 317b
Detalhamento do <html xmlns=http://www.w3.org/1999/xhtml >
login e senha. <head runat=server> Session(aula) = ASP.NET
<title>Exemplo em ASP - VB</title> Session(data) = Now()
</head>
<body>
Aps a definio da palavra-chave da sesso, ser determinado o seu valor. A
<form id=form1 runat=server> recuperao dos dados ser feita da mesma forma, identificando a palavra-chave.
<p id=lblLogin>rea Restrita - Web Service Controls</p> No exemplo da figura 318, vamos criar as duas variveis mencionadas e recupe-
Login: r-las aps o clique do boto.
<asp:TextBox ID=TextBox1 runat=server></asp:TextBox>
Ao clicarmos no boto Enviar, os itens referentes a Estamos vendo uma aula de:
<p>
e Horrio: sero preenchidos de acordo com o cdigo mostrado na figura 319.
Senha:
<asp:TextBox ID=TextBox2 runat=server></asp:TextBox> Figura 319
<html xmlns=http://www.w3.org/1999/xhtml > Preenchendo itens.
</p>
<head runat=server>
<asp:Button ID=btnEnviar runat=server Text=Enviar />
<title>Session em ASP.NET</title>
</head>
<asp:Button ID=btnCancelar runat=server Text=Cancelar />
<script runat=server>
</form>
Sub Page_Load(ByVal Sender As Object, ByVal E As EventArgs)
</body>
Session(aula) = ASP.NET
</html>
Session(data) = Now()
End Sub
252 253
Informtica 4 captulo 8
Figura 321
Mostrar2.Text = Session(data) Link para
visualizao.
End Sub
</script>
<body>
<form name=formulario runat=server>
Visualizando variveis tipo Session<br />
<br/>
<asp:Button ID=btnEnviar runat=server Text=Enviar
onclick=btnEnviar_Click /><br/>
<br/> Estamos vendo uma aula de:
<asp:Label ID=Mostrar1 runat=server Text=></asp:Label>
<br/>Horrio: No cdigo principal, podemos verificar somente a criao das chaves (figura 322).
<asp:Label ID=Mostrar2 runat=server Text=></asp:Label>
</form> Figura 322
Cdigo principal com
</body> <html xmlns=http://www.w3.org/1999/xhtml >
criao das chaves.
</html> <head id=Head1 runat=server>
<title>Session em ASP.NET</title>
</head>
As variveis de sesso foram criadas no evento Page_Load e a recuperao <script runat=server>
dos valores ocorrer quando o evento btnEnviar_Click for acionado (figu- Sub Page_Load(ByVal Sender As Object, ByVal E As EventArgs)
ra 320). Session(aula) = ASP.NET
Session(data) = Now()
Figura 320 End Sub
Varivel Session
</script>
<body>
carregada.
<form id=Form1 name=formulario runat=server>
Visualizando variveis tipo Session<br />
<br/>
<asp:linkbutton runat=server PostBackUrl=Recuperar.
aspx>Prxima Pgina</asp:linkbutton>
</form>
</body>
</html>
8.4.1. Recuperando sesso em outra pgina por meio de um evento Figura 323
Resultado aps
Depois que uma sesso foi criada, podemos recuperar os valores em outra pgi- <html xmlns=http://www.w3.org/1999/xhtml >
o clique no boto.
na. Vamos utilizar o exemplo anterior e dividi-lo em duas pginas a primeira <head id=Head1 runat=server>
para criao da sesso e a segunda para visualizao. Na primeira, vamos retirar <title>Session em ASP.NET</title>
o boto e incluir um link para que o usurio seja direcionado para a prxima </head>
pgina (figura 321). <script runat=server>
254 255
Informtica 4 captulo 8
Figura 325
Menu de opes.
Figura 324b
Eliminado o boto
para visualizao.
<html xmlns=http://www.w3.org/1999/xhtml >
<head id=Head1 runat=server>
<title>Session em ASP.NET</title>
</head>
<script runat=server>
Sub Page_Load(ByVal Sender As Object, ByVal E As EventArgs)
Mostrar1.Text = Session(aula)
256 257
Informtica 4 captulo 8
No cdigo que estamos utilizando como exemplo, encontramos para cada link a No cdigo (figura 328), a funo Request.QueryString() realizar a captura da
identificao do arquivo e o valor a ser transferido via URL (figura 326). varivel no evento Load_Page e carregar a frase no controle Label, de acordo
com a escolha do usurio.
Figura 326
Identificao de arquivo Figura 328
e valor a transferir. <!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 <!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitio- Captura da
Transitional//EN http://www.w3.org/TR/xhtml1/DTD/ nal//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional. varivel no evento
xhtml1-transitional.dtd> dtd> Load_Page.
<html xmlns=http://www.w3.org/1999/xhtml > <html xmlns=http://www.w3.org/1999/xhtml >
<head runat=server> <head runat=server>
<title>Menu de Opes</title> <title>menu de Opes - Escolha</title>
</head> </head>
<body> <script runat=server>
<form id=form1 runat=server> Sub Page_Load(ByVal Sender As Object, ByVal E As EventArgs)
258 259
Captulo 9
ADO.NET
DataSet
DataReader
Objetos para banco de dados
Mtodos de conexo
Consideraes nais
Referncias bibliogrcas
Glossrio
InFoRmtICa 4 CaPtulo 9
Figura 329
Estrutura geral.
Oracle Data Provider Para implementao de Banco de Disconnected: fornece classes capazes de armazenar dados sem a depen-
API Prexo:Oracle Dados Oracle dncia da fonte de dados de determinado provedor. Por exemplo, DataTable.
SQL Data Provider Para implementao de Banco de Shared: classes que podem ser acessadas por todos os provedores;
API Prexo:Sql Dados Microsoft SQL Server
Data Providers: classes utilizadas em diferentes fontes de dados para ge-
renciamento.
262 263
InFoRmtICa 4 CaPtulo 9
tabela 16
9.1. DataSet mtoDoS DeSCrIo DataReader.
O objeto recordset (ADO), que armazena somente uma coleo de tabelas, FieldCount Nmero de colunas da linha de
tem desvantagens em relao ao DataSet, que faz parte do System.Data. O dados atual
DataSet controla uma cpia do banco de dados, representando um conjunto
de informaes em memria cach que no esto conectadas com o banco Verica se o objeto DataReader
de dados do sistema. Baseado em XML e independente da fonte de dados, IsClosed
est fechado
o DataSet pode armazenar vrias verses das tabelas. Apesar de trabalhar
no formato desconectado, o DataSet possui mecanismos que do suporte ao Read Avana para o prximo registro
modelo conectado. Entre os mtodos disponveis, podemos destacar alguns
mostrados na tabela 15. Close Fecha o objeto
tabela 15
ColeeS DeSCrIo
DataSet. 9.3. objetos para banco de dados
Tables Uma coleo de tabelas que Uma das grandes vantagens do ADO.NET so os recursos oferecidos pelos ob-
armazenam os dados atuais a serem jetos de manipulao de dados.
manipulados
9.3.1. objeto Datatable
mtoDoS DeSCrIo
O objeto DataTable pode representar uma ou mais tabelas de dados, as quais
AcceptChanges Grava todas as alteraes permanecem alocadas em memria. Pode ser manipulado por meio de mtodos,
como mostra a tabela 17.
para o DataSet
9.2. DataReader
TableName Dene o nome da tabela
O DataReader permite acessar e fazer a leitura do banco de dados, percorrendo
os registros de forma sequencial por meio do objeto command. Esses registros
sero lidos posteriormente pelo DataReader. Diferentemente do DataSet, o Da-
Clear Limpa dos dados da tabela
taReader no oferece acesso desconectado e no permite alterar ou atualizar a
fonte de dados original. Ele possibilita apenas o acesso rpido de leitura. Entre
os mtodos, podemos destacar os que aparecem na tabela 16.
264 265
InFoRmtICa 4 CaPtulo 9
Figura 330
9.3.2. objeto DataView Objeto connection
SQL Server: Classe SqlConnection especfico.
As operaes de pesquisa, ordenao e navegao pelos dados podem ser feitas
por meio do DataView, que permite a ligao da fonte de dados com a interface OLE DB: Classe OleDbConnection
do usurio. Portanto, utilizamos um DataView para visualizar as informaes
contidas em DataTable. Uma vantagem possuir vrios DataViews para a mes-
ma DataTable. A tabela 18 ilustra algumas das propriedades do DataView.
As principais propriedades da Classe Connection podem ser observados na ta-
tabela 18 bela 19.
DataView. mtoDoS DeSCrIo
tabela 19
RowFilter Retorna a expresso usada para mtoDoS DeSCrIo Connection String.
ltrar os dados
ConnectionString Contm a string de conexo
Captura uma linha de dados
Item especca da tabela
DataBase Retorna o nome do banco de dados
Ordena os dados por meio
Sort de uma coluna
Retorna o nome da instncia do banco
DataSource
Adiciona uma nova linha de dados
Addnew
Retorna o estado atual de conexo:
State Broken, Closed, Connecting, Executing,
Table Dene qual DataView ser visualizada Fetching e Open
Figura 332
Incluindo os namespace Cdigo
9.4. mtodos de conexo using System.Data representando
using System.Data.SqlClient passos para conexo.
O primeiro passo para realizar a conexo criar o objeto Connection por meio
de uma string de conexo. Isso permitir que o objeto Command receba e exe- Montando a string de conexo
cute instrues SQL no formato de parmetros. Quando o objeto Command // definindo isoladamente cada componente da conexo
realizar o retorno dos dados, deve-se criar um objeto DataAdapter, que preen- string servidor = localhost
cher um objeto DataSet ou DataTable. string username = usuario
string senha = db2009conect
9.4.1. objeto Command string banco = papelaria
// contruindo a ConnectionString
A funo do Command fazer a ligao com um banco de dados especfi co. string ConnectionString = Data Source= + servidor + ;
Por isso, esse objeto deve conter informaes necessrias para que a conexo ConnectionString += User ID= + username + ;
seja estabelecida, indicando o caminho do banco, usurio, senha etc. Como foi ConnectionString += Password= + senha + ;
mencionado anteriormente, cada provedor possui um objeto connection espe- ConnectionString += Initial Catalog= + banco;
cfi co (fi gura 330).
266 267
Informtica 4 captulo 9
Figura 333 Para obter mais colunas, podemos utilizar o comando da forma como sugerida
Outra forma de SqlConnection conexao = new SqlConnection(Data na figura 335.
realizar conexo. Source=(localhost);Initial Catalog=papelaria; User ID=usuario;Passwor
d=db2009conect); Figura 335
Como obter mais
Console.WriteLine(drExemplo[0]);
colunas.
Console.WriteLine(drExemplo[1]);
9.4.2.1. Implementando a leitura de dados Console.WriteLine(drExemplo[2]);
Ainda seguindo o exemplo anterior, vamos elaborar uma estrutura mais com-
pleta de conexo e implementar os cdigos para leitura dos dados (figura 334).
Ou indicar o nome da coluna da qual se pretende obter a informao (fi-
Figura 334 gura 336).
Estrutura mais using System;
completa de using System.Data; Figura 336
conexo. using System.Data.SqlClient; Indicando o nome
Console.WriteLine(drExemplo[codigo]);
da coluna.
class ExemploConexao Console.WriteLine(drExemplo[nome]);
{ Console.WriteLine(drExemplo[usurname]);
268 269
Informtica 4 captulo 9
A estrutura de conexo que usa o Visual Basic, com banco de Dados Access,
semelhante ao cdigo desenvolvido no item anterior, que adota C# e SQL Server.
270 271
Informtica 4 captulo 9
272 273
Informtica 4 captulo 9
Figura 345
inclui a tabela no dataset Incluso do mtodo
dtColuna = New DataColumn()
Dim dtMinhaDataSet As DataSet = New DataSet() ReadOnly como True.
dtColuna.DataType = System.Type.GetType(System.String)
dtMinhaDataSet.Tables.Add(dtMinhaTabela)
dtColuna.ColumnName = Login
dtColuna.ReadOnly = True
vincula o dataset1 ao datagrid1
dtMinhaTabela.Columns.Add(dtColuna)
dtgMinhaTabela.SetDataBinding(dtMinhaDataSet, MinhaTabela)
End Sub
Isso impede que o usurio faa novas incluses. Como as colunas so montadas indi-
End Class
vidualmente, podemos determinar qual vai ser o procedimento adotado em cada uma,
assim como foi feito com a coluna login, deixando a alterao de dados ativa ou no.
Podemos, ainda, utilizar o mtodo Unique para informar se o valor da coluna nico
9.4.3.4.1. Visual do DataGrid ou no (figura 346). Isso significa que o mtodo no permite que o valor registrado em
uma coluna seja inserido novamente na mesma coluna em outro registro.
Para melhorar o visual do DataGrid, clique na seta existente no canto superior
do DataGrid (figura 343) e escolha a opo AutoFormat. Figura 346
dtColuna = New DataColumn() Utilizao do
Figura 343 dtColuna.DataType = System.Type.GetType(System.String) mtodo Unique.
Menu DataGrid. dtColuna.ColumnName = Nome
dtColuna.ReadOnly = False
dtColuna.Unique = True
dtMinhaTabela.Columns.Add(dtColuna)
A conexo com o banco de dados ser feita de maneira diferente, para que seja
possvel avaliar outra forma de conexo com o DataSet. Nesse caso, todas as
variveis relacionadas conexo com o banco de dados sero definidas dentro
da classe, para que tenham visibilidade global (figura 348).
Figura 347
Construo de
um DataView.
274 275
Informtica 4 captulo 9
Assim, teremos: conexo: varivel que possui as informaes de provedor, ca- Private Sub btnCarregar_Click(ByVal sender As System.Object, ByVal
minho e nome do banco; comando: armazena a string referente instruo e As System.EventArgs) Handles btnCarregar.Click
SQL a ser executada inicialmente; adptabela: cria um objeto Adapter usando dtgLista.CaptionText = Listagem de Operadores
as variveis comando e conexo; dstabela1 e dstabela2: representa os objetos adpTabela.Fill(dsTabela1, operadores)
DataSet(), um para cada DataGrid do formulrio. dtgLista.DataSource = dsTabela1
dtgLista.DataMember = operadores
O boto referente opo Carregar dever conter o cdigo mostrado na End Sub
figura 349.
Private Sub btnOrdeNome_Click(ByVal sender As System.Object,
Figura 349 ByVal e As System.EventArgs) Handles btnOrdeNome.Click
Cdigo do boto da dtgOrdenado.CaptionText = Listagem de Operadores
dtgLista.CaptionText = Listagem de Operadores
opo Carregar. adpTabela.Fill(dsTabela2, operadores)
adpTabela.Fill(dsTabela1, operadores)
Dim dvTabela As New DataView(dsTabela2.Tables(operadores))
dtgLista.DataSource = dsTabela1
dvTabela.Sort = nome
dtgLista.DataMember = operadores
dtgOrdenado.DataSource = dvTabela
End Sub
End Class
importante observar os conceitos abaixo:
No segundo boto, referente ordenao dos dados via campo nome, obser-
vamos o que ilustra a figura 350.
Figura 350
Boto da ordenao
dtgOrdenado.CaptionText = Listagem de Operadores
adpTabela.Fill(dsTabela2, operadores)
dos dados.
Dim dvTabela As New DataView(dsTabela2.Tables(operadores))
dvTabela.Sort = nome
dtgOrdenado.DataSource = dvTabela
276 277
Informtica 4 captulo 9
Figura 356
o banco via ASP.NET. O primeiro passo criar um projeto tipo Visual Basic e
Testando a conexo.
um template Web Aplication. No modo Design, ser adicionado o componente
SqlDataSource (figura 353).
Figura 353
Componente
SqlDataSource.
Figura 354
Configurao do
SqlDataSource.
Nesse ponto, ser possvel realizar um teste de conexo com o banco de dados,
O prximo passo ser criar a nova conexo usando o boto New Connection. usando o boto Test Connection. Se estiver tudo OK, aparecer uma mensa-
Aparecer uma segunda janela, na qual poderemos indicar o nome e o local gem de confirmao (figura 356).
onde se encontra a base de dados (figura 355).
Aps o teste de conexo, finalize a tela clicando em OK. Retorne janela an-
terior. Podemos disponibilizar a Connection String, como mostra a figura 357.
Figura 355
Localizao do banco
de dados. Figura 357
Visualizando
a String de
conexo.
Figura 358
Confirmando a
ConnectionString.
278 279
Informtica 4 captulo 9
Figura 359
Agora, podemos ver (figura 361) o cdigo que foi implementado automaticamente.
Configurando o SQL.
Figura 361
O cdigo
<asp:SqlDataSource ID=SqlDataSource1 runat=server
implementado
ConnectionString=<%$ ConnectionStrings:ConnectionString %> automaticamente.
ProviderName=<%$ ConnectionStrings:ConnectionString.Provider-
Name %>
SelectCommand=SELECT * FROM [operadores]></
asp:SqlDataSource>
Figura 362
GridGrid View.
Uma nova janela ser aberta para a criao da instruo SQL inicial. Obser-
vando a janela de configurao podemos verificar o nome da tabela, quais os
campos a serem visualizados e a configurao das clusulas Where e Order By.
Na parte inferior da janela, nota-se a montagem da linha SQL (figura 359).
Finalizado o processo, possvel realizar o teste da Query com o banco de A partir da opo Choose Data Source, podemos apontar o SqlDataSource
dados, conforme a figura 360. (figura 363).
Finalizada essa operao, o cdigo seguinte ser o que mostra a figura 364.
Figura 364
<asp:GridView ID=GridView1 runat=server Concluda a
AutoGenerateColumns=False operao de
DataKeyNames=cod_ID DataSourceID=SqlDataSource1> selecionar o
DataSource.
<Columns>
<asp:BoundField DataField=cod_ID HeaderText=cod_ID
InsertVisible=False
280 281
Informtica 4
Consideraes finais
O objetivo dos autores deste livro permitir que alunos e profissionais da rea de
informtica possam ingressar no ramo da programao e desenvolvimento de sof-
tware. Por isso, foram abordados aspectos de lgica de programao e programa-
o orientada a objetos e apresentadas as estruturas bsicas de programao como
HTML, Java, C#, VB.NET e ASP.NET, que podem ser aplicadas nas plataformas
desktop e Web. O livro a ponta de um iceberg no que diz respeito a comandos
e recursos de programao. Compete ao aluno a busca incessante pelo aprimora-
mento das tcnicas de programao. Portanto, seguem abaixo algumas dicas.
282 283
Glossrio
informtica Glossrio
A
ACL (Acess Control List ou lista de controle de acesso) configurao criada
para definir regras para que os usurios da rede local acessem a internet.
AT (Advanced Tecnology) padro de gabinete utilizado nos primeiros PCs da IBM. BTX (Balanced Tecnology Extended ou tecnologia balanceada estendida)
padro de gabinete com o objetivo de padronizar placas-me de menor tamanho
ATA tecnologia que permite que os dados armazenados em discos rgidos, para se- e tambm aumentar a refrigerao, facilitando a passagem do ar. A tendncia
rem utilizados pelo processador, sejam total ou parcialmente carregados para a me- que este formato substitua o ATX.
mria e transmitidos da memria para o disco, depois de serem alterados, ou criados.
buffer rea usada para armazenar dados, utilizada sempre que o computador
ATAPI tecnologia que permite que os dados armazenados em discos rgidos, para precisa ler dados de uma fonte que no tenha velocidade de transmisso constante.
serem utilizados pelo processador, sejam total ou parcialmente carregados para a me-
mria e transmitidos da memria para o disco, depois de serem alterados, ou criados. bug problema de lgica surgido durante a execuo de um aplicativo ou siste-
ma computacional.
ATX (Advanced Tecnology Extended ou tecnologia avanada estendida)
padro de gabinete desenvolvido pela Intel em 1995, em substituio ao AT. byte tambm chamado de octeto, o byte formado por 8 bits.
286 287
informtica Glossrio
C
C# considerada como a mais importante linguagem de desenvolvimento da
Microsoft dentro da Plataforma .NET Framework.
Representa tambm a linguagem de programao criada por Dennis Ritchie, CPD Centro de Processamento de Dados, nome obsoleto atualmente.
como base ao desenvolvimento do sistema operacional UNIX (escrito em As-
sembly originalmente). CPU (Central Processing Unit ou unidade central de processamento) refere-
se ao microprocessador, e no ao gabinete como um todo, e sua funo proces-
C++ linguagem de programao de alto nvel desenvolvida por Bjarne sar as instrues enviadas.
Stroustrup. Desde os anos 1990, uma das linguagens comerciais mais po-
pulares, mas disseminada tambm na academia por seu grande desempenho CRT (Catodic Ray Tube ou tubo de raios catdicos) tecnologia usada para mo-
e base de utilizadores. nitores com tubo.
cache considerada memria primria, ou principal, devido a velocidade de CSS sigla para Cascading Style Sheets ou estilo de pginas em cascata.
D
acesso aos dados do processador.
Data Base Administrator (DBA ou administrador de banco de dados) profis-
CD A sigla signifca Compact Disc, ou disco compacto, e foi introduzida no sional que conhece profundamente as ferramentas de administrao de banco
mercado em 1985 pela Sony e pela Philips. de dados para utiliz-las de maneira eficiente.
CD-R CD que pode ser gravado, como indica o sufixo R (de Recordable ou deb pacotes de software do Debian, distribuio Linux da qual derivou o Ubuntu.
gravvel), porm aceita somente uma gravao.
debugger (depurador) tem a funo de permitir ao usurio acompanhar a
CD-ROM O CD leva a sigla ROM para indicar que somente para leitura execuo do programa, visualizando os resultados em tempo real, em busca de
(Read-Only Memory ou memria apenas de leitura). possveis erros de lgica.
CD-RW esse formato (RW remete a Rewritable ou regravvel) permite gravar, desktop rea de trabalho.
apagar e gravar novamente vrias vezes no mesmo CD.
DIMM (Dual In-line Memory Module ou mdulo de memrias em linha dupla)
chaves em um modelo relacional, designam o conceito de item de busca, mdulo de memria formado pelos chips de memria encapsulada e soldados
ou seja, um dado que ser empregado nas consultas base de dados. Tipos um ao lado do outro sobre os dois lados de uma placa de circuito impresso.
de chaves em um modelo relacional primrias, candidatas, secundrias e
estrangeiras. disco flexvel floppy-disk ou disquete.
chips circuitos integrados. disco rgido o HD o jeito popular de nos referirmos ao HDD (Hard Disc
Drive ou unidade de disco rgido), tambm conhecido como winchester, nome
CI (Circuito Integrado) componente capaz de realizar somente um determina- de uma tecnologia de fabricao antiga de discos rgidos.
do tipo de operao, com determinada quantidade de dados.
disquete (floppy-disk) o nome disco flexvel refere-se ao fato de o dispositivo
clusters blocos em que os setores do disco so divididos. ser de plstico, que pode ser magnetizado.
CMOS chip responsvel por armazenar configuraes sobre os HDs instalados distribuio para o sistema Linux nunca se fala em verso, e sim em distribui-
e seus tamanhos, data e hora, e vrias outras informaes. o. As verses se aplicam a sistemas operacionais como o Windows.
cdigo fonte texto escrito segundo as regras de determinada linguagem de DMA tecnologia implementada nas placas-me que faz com que a transmisso
programao. de dados entre o disco rgido e outras interfaces, como memria, placa de rede,
outros discos, etc. seja direta, sem sobrecarregar o processador.
compilador software que tem a funo de traduzir o cdigo fonte desenvolvido
pelo programador em um software que possa ser executado diretamente pelo DML (Data Manipulation Language ou linguagem de manipulao de dados)
usurio, ou seja, voc escreve todo cdigo fonte e depois pede para o compilador decorre do fato de os nveis de abstrao no se aplicarem somente definio
convert-lo em um programa. ou estruturao de dados, mas tambm sua manipulao.
288 289
informtica Glossrio
DNS sigla para Domain Name System ou sistema de nomes de domnio. fotogrficas, pen-drive, celulares e/ou outros dispositivos.
DOCTYPE identifica o tipo de documento. EPROM sigla para Erasable Programmable Read Only Memory (Erasable de
apagvel) memria que pode ser regravada.
download transferir dados ou arquivos de um computador remoto para o de
um usurio; baixar o arquivo. estabilizador equipamento de proteo para as variaes na voltagem que
ocorrem normalmente no fornecimento de energia eltrica e podem causar fa-
DRAM (Dynamic RAM ou memria RAM dinmica) tipo de memria empre- lhas nos equipamentos ou diminuir sua vida til.
gada como RAM nos computadores em 2009.
Ext tipo de sistema de arquivos no sistema operacional Linux, assim como o
drive dispositivo para inserir disco flexvel (disquete), CD-ROM e/ou DVD e ReiserFS, o XFS, o JFS, o GSF e o OCFS2. O Ext o padro da maioria das
leitoras de cartes Flash. distribuies, geralmente na verso Ext2 e Ext3.
driver tradutor ou software controlador que sabe os comandos que o sistema Ext2 (second extended file system ou segundo sistema extendido de arquivos) sis-
operacional pode enviar, interpreta-os e converte a solicitao de modo que o tema de arquivos que era o mais comum nas distribuies e que deu origem ao Ext3.
chip do aparelho possa reconhec-la.
Ext3 (third extended file system ou terceiro sistema extendido de arquivos)
DSP sigla em ingls para Digital Signal Processor ou processador de sinais digitais. sistema de arquivos no Linux adotado pela maioria das distribuies.
dual channel (canal duplo) permite que uma placa-me tenha duas controla-
doras de memria, cada uma controlando um jogo de memria em separado.
F
FASTATA tecnologia que permite que os dados armazenados em discos r-
gidos, para serem utilizados pelo processador, sejam total ou parcialmente
carregados para a memria e transmitidos da memria para o disco, depois de
serem alterados, ou criados.
DVD sigla para Digital Vdeo Disc ou disco digital de vdeo, para armazenar FAT (File Allocation Table ou tabela de alocao de arquivos) primeiro sistema
vdeos de boa qualidade e capacidades que variam de 4.7GB em uma camada de arquivos utilizado pelo Windows.
at 8.5GB em duas camadas.
filtro de linha equipamento usado para bloquear o fluxo de energia caso a ten-
DVD+R disco idntico ao DVD-R, porm tem formato diferente de gravao so aumente mais que o normal.
e leitura. Portanto, no so lidos e gravados por leitoras/gravadoras DVD-R.
fio terra ponto ou caminho no solo que serve de descarga para a corrente el-
DVD-R disco que permite uma s gravao de at 4,7GB. trica que escapa do aparelho eltrico.
DVD-RW disco que tem a mesma capacidade do DVD-R, mas pode ser grava- Firewall (significa parede corta-fogo, em traduo literal) software de segu-
do e regravado vrias vezes. rana responsvel por gerenciar as conexes de rede com destino mquina
E
local, e bloqueia o acesso de pessoas ou aplicaes no autorizadas.
EEPROM (Eletrical Erasabel Programmable Read Only Memory ou memria
somente de leitura, programvel e limpa eletricamente) memria em que se Firewire barramento com tecnologia desenvolvida pela Apple Computer em meados
pode regravar, ou seja, podemos apagar parte da memria e gravar novamente. dos anos 1990, e a principal concorrente da USB na padronizao de dispositivos.
EIDE tecnologia que permite que os dados armazenados em discos rgidos, para flash (memria) a principal mdia para armazenamento de dados em micro-
serem utilizados pelo processador, sejam total ou parcialmente carregados para a me- dispositivos, como celulares, cmeras, PDAs e notebooks, em formato de car-
mria e transmitidos da memria para o disco, depois de serem alterados, ou criados. tes de memria e pen-drives ou unidades internas no lugar do HD.
e-mail correio eletrnico. floppy-disk (disquete) o nome disco flexvel refere-se ao fato de o dispositivo
ser de plstico, que pode ser magnetizado.
energia eletroesttica corrente eltrica que escapa do aparelho eltrico quando
surge algum defeito, ou tambm para liberar a energia esttica captada do ambiente. fonte de alimentao dispositivo que transforma a energia eltrica que vem
da rede atravs do cabo de fora, preparando-a para que chegue aos componen-
entradas USB entradas para conexes de dispositivos como webcam, cmeras tes do computador da forma adequada.
290 291
informtica Glossrio
G
journaling (registro de dados como em um jornal) recurso do sistema de ar-
gabinete caixa normalmente metlica que organiza e fixa os seus vrios com- quivos Linux, no qual as informaes so salvas automaticamente durante a
ponentes, como HD, CD/DVD-ROM, placa-me, placas de expanso com co- execuo do sistema operacional.
nectores externos (USB, serial, vdeo, som etc.), sustenta a placa-me e protege
as placas do contato direto com pessoas, umidade, energia esttica, poeira. JPG ou JPEG (Joint Photographic Experts Group ou Grupo Reunido de Especia-
listas em Imagem) tipo de imagem.
game station assim so chamados os computadores montados para aficionados
em jogos, e precisam de placa de vdeo com processador e memria dedicados. JVM (Java Virtual Machine ou, literalmente, mquina virtual Java) programa
que carrega e executa os programas desenvolvidos em Java.
K
GIF (Graphics Interchange Format ou Formato de Intercmbio de Grficos)
formato de imagem. kernel ncleo ou gerenciador, a parte mais importante do sistema operacional.
gigabyte (GB) unidade utilizada para indicar a capacidade de armazenamento LAN (Local Area Network ou rede local) rede com mquinas que se limi-
de dados em um computador, em que 1GB equivale a 1 milho de bytes, segun- tam a conectar entre si num mesmo ambiente, de uma empresa, instituio
L
do o Sistema Internacional de Unidades (SI). ou residncia.
GUI (Graphical User Interface ou interface grfica com o usurio) em Java, laptop computador porttil.
um conjunto de classes para disponibilizar componentes grficos (objetos) como
caixas de texto, botes, listas etc. LBA (Logical Block Addressing ou Endereamento Lgico de Blocos) o m-
H
todo de traduo que permite a BIOS reconhecer HDs IDE.
hacker pessoa que usa seus profundos conhecimentos em programao para
burlar o sistema de segurana de computadores e sistemas. LCD (Liquid Crystal Displays ou tela de cristal lquido) tecnologia que utiliza a
substncia chamada cristal lquido para bloquear ou dar passagem luz.
hardware a parte fsica do computador, seus circuitos eletrnicos, cabos,
placas, dispositivos perifricos conectados, etc. LEDs (diodos emissores de luz) pequenas lmpadas que podem ser controla-
das uma a uma e variar sua luminosidade at se apagarem por completo numa
HD sigla em ingls para Hard Disk (disco rgido). imagem totalmente escura.
HTML (HyperText Markup Language ou linguagem de marcao de hipertex- link texto que geralmente aparece em azul, sublinhado, e que contm uma
to) linguagem utilizada para o desenvolvimento de pginas da internet. URL da pgina a qual ele se refere, que fica escondida, no visvel.
ISA (Industry Standard Arquiteture ou arquitetura padro da indstria) padro mainboard placa-me.
para conector de expanso utilizado pela IBM em seus primeiros computadores.
292 293
informtica Glossrio
malware palavra originria da expresso em ingls MALicious softWARE, nibble largamente utilizado em sistemas digitais, representa meio byte (4
que literalmente significa software malicioso. bits), a quantidade de bits que o sistema de codificao BCD (Binary-coded
decimal ou codificao binrio decimal) usa para representar valores de 0 a 15.
MAN (Metropolitan Area Network ou rede metropolitana) Rede Metropolita-
na redes que abrangem uma cidade inteira e podem se ligar a vrias LAN que n representa um recurso de computao. Qualquer elemento computacional que
estiverem dentro do seu permetro. faa parte da arquitetura na qual ser implementada a soluo pode ser representado
como um n. Pode ser um servidor, um computador cliente, um switch, um hub etc.
MBR tabela de alocao, quando o disco particionado, que fica armazenada
no incio do disco rgido. Essa tabela informa a posio de incio da partio, se no-break dispositivo que mantm o abastecimento por meio de sua bateria at
est ativa e qual o seu tipo. que a energia volte ou que o computador seja desligado.
memria local de armazenamento dos dados. NTFS (New Technology File System ou nova tecnologia em sistema de arqui-
vos) sistema de arquivos utilizado pelo Windows, traz diversas caractersticas
microprocessador circuito integrado, porm programvel, capaz de realizar como segurana, capacidade de armazenamento e limitaes aprimoradas em
vrias instrues, uma de cada vez. relao s verses anteriores.
Microsoft SQL Server sistema de gerenciamento de SGBDRs (sistemas geren- ncleo quantidade de processadores internos em uma mesma CPU.
O
ciadores de bancos de dados).
OCFS2 sistema de arquivos Linux, permite utilizao simultnea e comparti-
MMS (Microsoft Media Service) protocolo proprietrio da Microsoft para lhada por mais de um computador.
transmisso de fluxo de dados em tempo real, chamado tambm de NetShow.
off-board (fora da placa) expresso para descrever se um dispositivo faz parte
modelo de referncia ISO OSI modelo apresentado pelo ISO (Internationals da placa-me ou se ser includo parte por meio de uma placa de expanso,
Standards Organization ou Organizao Internacional de Padres), com o in- especfica para a tarefa.
tuito de padronizar os protocolos em camadas, com o nome de Open System
Interconnection (OSI), ou seja, interconexo de sistemas abertos. OLED sigla para Organic Lighting Emmiting Diode ou diodo orgnico
emissor de luz.
monotarefa sistema operacional que consegue processar apenas uma instru-
o de cada vez. on-board (na placa) expresso que significa que os circuitos esto impressos
nas prprias placas, para vrios tipos de aplicaes.
motherboard placa-me.
on-line est conectado internet ou a uma rede de computadores.
mouse dispositivo apontador que serve para mostrar ao sistema operacional o
que se deseja fazer, indicando, por meio do cursor no vdeo, o elemento com o OpenSource significa cdigo aberto, indicando que o programa pode ser uti-
qual se quer interagir e que tipo de ao se pretende realizar. lizado livremente por qualquer pessoa, independentemente da finalidade, e se
refere a sistemas como os softwares livres, Linux.
P
MSDNAA sigla para Microsoft Developer Network Academic Alliance ou
aliana acadmica da rede de desenvolvedores da Microsoft. P2P (Peer-to-Peer ou de par em par) termo usado para os softwares que fazem
transferncia de arquivos de um computador para outro.
MS-DOS sigla para Microsoft Disk Operating System ou disco de sistema
operacional Microsoft. pacote software que pode ser instalado no Linux.
multitarefa sistema operacional que consegue processar vrias instrues ao PAN sigla para Personal Area Network ou rede pessoal.
mesmo tempo e executar diversos programas simultaneamente.
parmetro elemento digitado depois do primeiro espao, ou seja, a primeira pala-
MySQL sistema de gerenciamento de SGBDRs, um banco de cdigo-fonte vra um comando e as demais, separadas por espao, so os parmetros (porque o
aberto, gratuito e est disponvel tanto para o Windows como para o Linux. espao justamente um caractere separador entre um comando e um parmetro).
N
NetBSD sistema operacional para servidores de rede. partio diviso do disco rgido.
294 295
informtica Glossrio
particionar o mesmo que dividir o disco, identificando suas partes e devidas plug and play modo pelo qual o sistema operacional pode reconhecer automa-
dimenses. ticamente o dispositivo, mesmo que este demande algum driver especfico. Os
dispositivos mais comuns como pen-drives, mouses e impressoras, podem ser
pass senha. utilizados assim que so conectados.
password caracteres digitados pelo usurio, com limitaes e uma janela para plugn play (conecte e use) tcnica que reconhece e instala muitos dispositi-
a entrada de dados. vos automaticamente sem necessidade de nenhuma tarefa adicional, encontrada
desde a verso 95 do Windows, e tem seu pice na verso XP, que capaz de
pasta forma mais simples de organizar o contedo em um sistema operacional. operar com quase todos os dispositivos existentes.
PATA (vem de Parallel ATA) tecnologia que permite que os dados armazenados PMBOK - Guia do Conjunto de Conhecimentos em Gerenciamento de Proje-
em discos rgidos, para serem utilizados pelo processador, sejam total ou par- tos publicao do PMI (Project Management Institute ou Instituto de Geren-
cialmente carregados para a memria e transmitidos da memria para o disco, ciamento de Projetos), para identificar e descrever as boas prticas de projetos
depois de serem alterados, ou criados. que agreguem valor e sejam fceis de aplicar.
PC/AT o primeiro computador lanado em 1984 pela IBM, como sucessor do porta paralela conector utilizado para ligar dispositivos a computadores, principal-
modelo XP, com capacidade de apenas 20MB e tecnologia ATA. mente impressoras, caracterizando a transmisso de bits na forma paralela de envio.
PC abreviao para Personal Computer ou computador pessoal. porta serial conector que foi muito utilizado no passado para conectar mouse,
impressora, leitores de cdigo de barras e outros dispositivos de automao, co-
PCI (Peripheral Component Interconnect ou componente de interconexo de mercial e industrial, enviando os bits de forma serial.
perifricos) padro desenvolvido pela Intel em 1990 para substituir os barra-
mentos ISA e VESA Local Bus. PostgreSQL sistema de gerenciamento de SGBDRs (sistemas gerenciadores de
bancos de dados).
pen-drive pen, disco removvel, chaveiro de memria so as tradues mais
usadas para Memria USB Flash Drive, dispositivo de armazenamento com prompt de comandos do Windows aplicativo em que o usurio dispe de uma
ligao tipo USB que comeou a ser produzido no ano 2000. interface que interpreta os comandos digitados. Esses so transferidos ao sistema
operacional, que, depois de execut-los, retorna o resultado ao prompt, de ma-
perifricos so todos os dispositivos que se conectam unidade de sistema neira que o usurio o visualize.
para obter respostas ou para passar informaes para o computador. Esses
dispositivos so geralmente divididos em trs grupos perifricos de entrada, protocolo mdulo que agrupa um tipo de servio.
de sada e mistos.
protocolo RDP (Remote Desktop Protocol ou protocolo de rea de trabalho
PID (Process Identification ou cdigo do processo) nmero de controle do remota) protocolo empregado para transmisso de dados da camada de apli-
processo, junto ao percentual de uso de memria e de processador. cao. Permite transmitir udio e vdeo em vrios canais de uma transmisso da
aplicao Microsoft Terminal Service.
pilha de protocolos protocolos de uma mesma camada.
protocolo RTP/RTCP (Real Time Protocol ou protocolo de tempo real e Real
pixel Menor ponto visvel que compe uma imagem digital. Time Control Protocol ou protocolo de controle de tempo real) protocolos
utilizados em conjunto, desenvolvidos para transmitir udio em tempo real.
placa controladora placa lgica.
protocolo SMTP sigla para Simple Mail Transfer Protocol ou protocolo de
placa lgica tambm chamada de placa controladora, a placa que controla transmisso de e-mail simples.
todo o funcionamento do HD.
protocolo TCP (Transfer Control Protocol ou protocolo de transferncia com
placa-me conhecida tambm como mother-board, main-board ou, nos controle) protocolo de controle que negocia entre as partes como se dar a
computadores da Apple, como logic board (placa lgica), a placa de cir- conexo antes que um dado seja enviado e mantm o estado da conexo, mesmo
cuito impresso que liga ou interliga todos os componentes do computador. que as camadas inferiores da rede no ofeream controle de estado.
Em sites e fruns da internet, voc pode encontrar ainda a abreviao mobo
para design-las. pseudocdigo linguagem com a qual os algoritmos so desenvolvidos.
296 297
informtica Glossrio
R
RAD (Rapid Application Development ou desenvolvimento rpido de aplica-
o) linguagem capaz de, por si s, gerar cdigos com os quais podem ser
criadas aplicaes, mesmo sem se especializar na linguagem.
um programa em execuo no PC.
rede interligao de vrios computadores. setup programa de configurao que todo micro tem gravado dentro da me-
mria ROM (que, por sua vez, fica na placa-me).
registradores componentes do processador, que so unidades de memria
que, por ficarem dentro da CPU, possibilitam acesso aos dados bem mais veloz SGBDs (Sistemas Gerenciadores de Bancos de Dados) conjunto de progra-
do que ao acesso das memrias RAM ou cache. mas que permite a implementao de bancos de dados, assim como o controle
de acesso, o backup, a recuperao de falhas, a manuteno da integridade, a
ReiserFS (Reiser File System) sistema de arquivos bastante usado no Linux, administrao e a segurana dos dados que contm.
que tambm oferece journaling (registro de dados como em um jornal), mas
somente retm as informaes de cabealhos no faz o registro de dados, o sistema embarcado aquele que est gravado dentro dos equipamentos.
que o torna mais rpido que o Ext3.
sistema operacional software (como o MS-DOS, o Windows 95, 98, NT, XP
reset (restabelecer) boto que reinicia o computador, como se desligasse e e Vista, MacOS-X e Linux) que faz a comunicao amigvel e segura entre o
ligasse o micro novamente. hardware e as aplicaes.
resoluo imagem definida pela quantidade de pontos, os pixels. socket encaixe, na placa-me, que varia de acordo com o modelo do proces-
sador, que leva em conta velocidade e capacidade de processamento, memria
RFC (Request for Comments) especificao tcnica desenvolvida sobre um de- cach, terminais, consumo de energia.
terminado assunto por solicitao da IETF (Internet Engineering Task Force).
software a parte no fsica programas, instrues e procedimentos escritos
RGB sigla para Red, Green e Blue ou vermelho, verde e azul que determina por programadores para controlar o hardware de modo que este possa executar
uma tabela de cores no padro RGB. as tarefas de que precisamos.
rodar executar algum programa. software de compresso programas que fazem a compactao de arquivos.
ROM sigla para Read-Only Memory, que significa memria apenas de leitura. software de inteligncia artificial (IA) sistema que utiliza algoritmos no nu-
uma memria que no permite a alterao ou remoo dos dados ali gravados, mricos para resolver problemas complexos, tambm conhecido como sistema
os quais so impressos em uma nica ocasio. baseado em conhecimento.
roteadores equipamentos que fazem interconexo com vrias redes. software firmware programa implantado em um chip.
roteamento algoritmo que analisa o trfego de rede entre os pontos que esto Solaris sistema operacional para servidores de rede.
transferindo pacotes para verificar o caminho que eles esto seguindo. Repasse
e roteamento geralmente so realizados por equipamentos chamados roteadores. spywares vrus espies que copiam dados ou senhas e os enviam para um am-
biente externo sem conhecimento nem consentimento do usurio.
RTSP (Real Time Streaming Protocol ou protocolo de transmisso de fluxo de
dados em tempo real) protocolo utilizado para transmitir e controlar a trans- SQL (Structured Query Language ou, literalmente, linguagem de consulta es-
misso tanto de udio quanto de vdeo sob demanda em tempo real. truturada) linguagem de manipulao de dados que se tornou padro para
S
SGBDRs (Sistemas Gerenciadores de Bancos de Dados Relacionais).
script lista dos comandos de criao do banco de dados e de suas tabelas den-
tro do SGBD. SSH (Secure Shell) protocolo que permite conexes seguras entre mquinas Linux.
service packs pacotes de atualizaes. stored procedure (procedimento armazenado) conjunto de comandos SQL
que so compilados e guardados no servidor.
servio a maioria das atividades executadas pelo sistema operacional, ou seja,
298 299
informtica Glossrio
streaming termo usado para transmisses multimdia ininterruptas por uma tuplas linhas de uma tabela.
U
fonte a vrios clientes e ao mesmo tempo.
Ubuntu sistema operacional baseado em Linux, desenvolvido de forma cola-
swap (troca) sistema de arquivos para memria virtual no Linux/Unix. borativa pelos internautas.
Swebok (Software Engineering Body of Knowledge ou reas do conhecimento UC (Unidade de Controle) principal componente do processador, que identifi-
da engenharia de software) publicao de 2004, uma iniciativa da Socie- ca as instrues, comanda os outros componentes, controla a memria e todos
dade da Computao do Instituto de Engenharia Eltrica e Eletrnica (IEEE os outros dispositivos do computador.
Computer Society), com o propsito de criar um consenso sobre as reas de
conhecimento da engenharia de software. UDP sigla para User Datagram Protocol ou protocolo de datagrama do usurio.
T
tabela de alocao tabela chamada MBR, que fica armazenada no incio do disco r-
gido. Essa tabela informa a posio de incio da partio, se est ativa e qual o seu tipo.
mum na linguagem de programao de computador. Ultra-ATA tecnologia que permite que os dados armazenados em discos rgi-
dos, para serem utilizados pelo processador, sejam total ou parcialmente carre-
Telnet tecnologia muito utilizada, tanto no Linux quanto no Windows, para gados para a memria e transmitidos da memria para o disco, depois de serem
acessar um PC remotamente. alterados, ou criados.
template modelo. Ultra-DMA tecnologia que permite que os dados armazenados em discos rgi-
dos, para serem utilizados pelo processador, sejam total ou parcialmente carre-
TextBox (caixa de texto) componente responsvel por receber as informaes gados para a memria e transmitidos da memria para o disco, depois de serem
do usurio e tambm o item mais comum, pois a maioria das entradas de alterados, ou criados.
dados realizada por ele.
UML (Unified Modeling Language ou linguagem de modelagem unificada)
threads tpicos, ou divises dos processos, que os sistemas operacionais mo- linguagem dedicada especificao, visualizao, construo e documentao
dernos utilizam para melhorar seu desempenho. que usa notao grfica para modelar softwares.
TI sigla para Tecnologia da Informao. unidade central de processamento o termo refere-se ao microprocessador, e
no ao gabinete como um todo, como muitas pessoas imaginam. Como seu
toolbar (barra de ferramentas) disponibiliza os botes de comandos mais utilizados. prprio nome diz, sua funo processar as instrues enviadas. O processador
est para o computador assim como crebro est para o ser humano.
ToolBox (caixa de ferramentas) contm componentes para o desenvolvimento
do projeto, os quais esto divididos em guias de acordo com o tipo de aplicao. URL (Uniform Resource Locator ou localizador de recurso universal) endere-
o de um recurso disponvel em uma rede.
top no Linux, um monitor bastante poderoso que traz diversas informaes
do sistema, alm dos processos em execuo e dos dados de PID, usurio etc. USB sigla significa Universal Serial Bus e se refere a uma tecnologia que veio
para facilitar a ligao de maior nmero de aparelhos ao PC como cmeras,
topologia de redes modo como os computadores esto ligados entre si, os equi- joysticks, mp3 players, leitores de cartes (inclusive simultaneamente), bem
pamentos empregados e a maneira como os dados iro trafegar dentro da rede. como acelerar ainda mais a velocidade da transmisso de dados.
trilha zero primeira trilha do sistema de arquivos do HD em que o boot est gravado. VGA sigla para Video Graphic Array ou vdeo de grficos vetorizados.
trojans nome em ingls dado a um vrus que evoca a histria grega do Cavalo VNC (Virtual Network Computing ou computao em rede virtual) tecnologia
de Troia, ou spywares. que possibilita acesso remoto de um computador a outro com interface grfica.
300 301
informtica
W
W3C (World Wide Web Consortium ou consrcio da rede mundial de compu-
tadores) fundado em 1994, o W3C formado por empresas de tecnologia de
diferentes partes do mundo que trabalham para criar padres e diretrizes para a
interpretao de contedos da web.
wireless (sem fio) meio de transporte das informaes entre teclado e computador.
World Wide Web (ou WWW) rede mundial criada em 1991 pelo cientista Tim
Berners-Lee, tornou-se base para o desenvolvimento dos navegadores com inter-
face grfica que viriam a se popularizar a partir da dcada de 1990, quando a
rede foi aberta s empresas e se espalhou mundo afora.
X
XFS sistema de arquivos Linux, rpido e indicado para parties grandes.
Z
zip ou rar formato de arquivo compactado com aplicativos especficos de
compactao.
302
Excelncia no ensino profissional
Administrador da maior rede estadual de educao profissional do pas, o
Centro Paula Souza tem papel de destaque entre as estratgias do Governo
de So Paulo para promover o desenvolvimento econmico e a incluso
social no Estado, na medida em que capta as demandas das diferentes
regies paulistas. Suas Escolas Tcnicas (Etecs) e Faculdades de Tecnolo-
gia (Fatecs) formam profissionais capacitados para atuar na gesto ou na
linha de frente de operaes nos diversos segmentos da economia.