Professional Documents
Culture Documents
Programao
de Computadores
Informtica
Habilitao tcnica em
Informtica
Volume 4
Informtica
Programao de
computadores
Ralfe Della Croce Filho
Carlos Eduardo Ribeiro
So Paulo
2010
Governador
Jos Serra
Presidente
Paulo Markun
Vice-Presidente
Fernando Jos de Almeida
Equipe de Edio
Coordenao geral
Alfredo Nastari
Coordenao editorial
Mirian Ibaez
Consultor tcnico
Vice-Governador
Alberto Goldman
ISBN 978-85-61143-46-6
Secretrio de Desenvolvimento
Geraldo Alckmin
Vice-Diretor Superintendente
Csar Silva
Chefe de Gabinete da Superintendncia
Elenice Belmonte R. de Castro
Coordenadora da Ps-Graduao, Extenso e
Pesquisa
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
Continuada
Celso Antonio Gaiote
Coordenador de Infraestrutura
Rubens Goldman
Coordenador de Gesto Administrativa e
Financeira
Armando Natal Maurcio
Coordenador de Recursos Humanos
Elio Loureno Bolzani
Assessora de Avaliao Institucional
Roberta Froncillo
Assessora de Comunicao
Gleise Santa Clara
Procurador Jurdico Chefe
Benedito Librio Bergamo
Sumrio
21 Captulo 1
Lgica de programao
3.3. Formatao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.4. Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.5. Cores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.6. Tabelas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
3.7. Imagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
1.4. Operadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.8. Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
1.5. Comandos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.9. Formulrios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
1.6. Vetor
3.10. XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
1.7. Matriz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
49 Captulo 2
Estrutura de dados
93 Captulo 4
Lgica de programao aplicada
linguagem Java
2.4. Pilhas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.5. Filas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.6. rvores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
57 Captulo 3
Criao de pginas Web
Interface). . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.1.3. A portabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Se
t te
rs
nome
endereco
telefone
ssoa()
Fim
nome Joozinho
idade 15
salrio 1500
nome como caractere
idade como inteiro
salrio como flutuante
Incio
Sumrio
4.5.1.1.3. Detalhando o
4.5.1.1.4. Codificao da
Sumrio
0
eiros
12
47
85
36
62
25
32
67
74
41
4.8.7.3. For . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
valores
4.8.8. Array (Vetor). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
23
17
49
Ex
ce
p
tio
T
A
n
hr
rr
IO
ay
ow
Ex
In
ab
de
ce
le
xO
pt
io
ut
n
ce
O
pt
fB
io
ou
AW
n
nd
TE
sE
xc
rr
or
ep
Er
tio
ro
Th
n
r
N
re
ul
ad
lP
D
o
I
Ru
nt
im
eE
xc
ep
tio
n
Sumrio
185 Captulo 5
Visual Studio 2008
197 Captulo 6
C Sharp
if...elseif...elseif....else. . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Sumrio
if...elseif...elseif....else. . . . . . . . . . . . . . . . . . . . . . . . . . 231
225 Captulo 7
Visual Basic.NET
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
7.1. Programao
el X
riv
a
UM
I S )
Av
x
DO
ub
ne(
S
Li
X
Dim 1 Then
7.10. Eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 le.Write
vel
)
x = n so
va r i
If
S
Co 2 Then Line(A
TR
X
te
=
vel
If x
.Wri
)
va r i
Else onsole en
a lor
A
C
t ro v
Th teLine(
ou
ri
x=3
uer
lseIf nsole.W
ua lq
E
Q
Co
ine(
iteL
.Wr
Else onsole
C
e y( )
d I f .Re a d K
En ole
ns
n( )
7.9.8.1. Agrupamento . . . . . . . . . . . . . . . . . . . . . . . . . . s Inte
Ma i
A 240
3
g er =
Sumrio
243 Captulo 8
ASP.NET
261 CAPTULO 9
ADO.NET
282
Consideraes finais
283
Referncias bibliogrficas
285
Glossrio
Captulo 1
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.
1 - Pegar o recipiente.
2 - Abrir a tampa.
3 - Tomar o contedo.
Quadro
Algoritmo
detalhado
da latinha.
1 - Pegar o refrigerante
com a mo esquerda.
4 Eliminar o lacre.
5 Posicionar a lata
corretamente na boca.
7 - Ingerir o lquido.
3 - Remover o lacre.
6 - Inclinar a lata.
8 - Voltar a lata na
posio original.
23
Informtica 4
captulo 1
Aproveitando o mesmo exemplo da latinha de refrigerante, vamos reescrever os passos lgicos por meio de um fluxograma (figura 1).
Simbologia do fluxograma
smbolo
nome e funo
Incio
NOME = TERMINAL
FUNO = Indica INCIO ou FIM
de um processamento
Incio
Pegar a
latinha
NOME = PROCESSAMENTO
FUNO = Definio de variveis ou
processamentos em geral (Clculos)
Tomar o
refrigerante
NOME = DISPLAY
FUNO = Sada de Dados, mostra
um texto e/ou varivel na tela,
idntico ao comando ESCREVA
NOME = DECISO
FUNO = Deciso a ser tomada,
retornando verdadeiro ou falso,
idntico ao comando SE
Remover o
lacre
Eliminar o
lacre
Segurar o
lacre
Posicionar a
lata na boca
Voltar a lata
na posio
original
Pegar o
refrigerante
Abrir a
tampa
NOME = DOCUMENTO
FUNO = Sada de Dados, envia
um texto e/ou varivel para a impressora,
usado em relatrios. Idntico ao
comando IMPRIMA
Fim
Inclinar a
lata
Ingerir o
lquido
Existem muitos softwares destinados construo de fluxogramas, mas possvel faz-los tambm com o uso do Microsoft Word. Os exemplos desse material
foram elaborados pelo Microsoft Visio.
Fluxograma
dos passos
lgicos.
Pseudocdigo
NOME = CONECTOR
FUNO = Desvia o fluxo para uma outra
pgina, sendo interligados pelo conector
Os algoritmos so desenvolvidos em uma linguagem denominada pseudocdigo ou, como preferem alguns autores, portugus estruturado. Podem ser
criados sem o formalismo das linguagens de programao, mas obedecem a
uma regra bsica de estruturao: cabealho, declarao e instrues, conforme o seguinte modelo:
NOME = ENTRADA/SADA
FUNO = Leitura de gravao
de arquivos
Programa nome_do_programa
Declare
NOME = SETA
FUNO = Indica a direo do fluxo
NOME = LOOP
FUNO = Realiza o controle de loop
Fim
Ttulo do Algoritmo
{declarao de variveis}
Incio
24
Figura 1
{instrues e comandos}
Declaraes de
variveis
Comandos e
instrues ordenados
de forma lgica
25
Informtica 4
captulo 1
Um algoritmo deve ter como caracterstica um nmero finito de passos, descritos de forma precisa e que possam ser executados em um determinado tempo. Pode permitir zero ou mais entradas de dados e gerar sadas de dados
refinados. Para construir um algoritmo, preciso usar informaes claras e
objetivas, geralmente compostas de um verbo ou de uma frase direta.
Numricos inteiros
Esse tipo de dado representado por nmeros no fracionados positivos ou negativos, como: 10, 50, -56, -1.000 etc.
Joozinho
idade
nome
minha_idade
15
pag_final
R$ 1.479,00
No pseudocdigo (figura 2), as constantes ou variveis devero estar relacionadas com os seus respectivos tipos de dados:
Programa variveis
Numricos flutuantes
Declare
Incio
nome Joozinho
idade 15
salrio 1.500,00
Fim
Caracteres ou literais
o maior conjunto de dados. So representados por letras, nmeros, smbolos e espao em branco, sempre entre aspas. Exemplo: cadeira, 100,
R$ 10.00, 11h00 etc.
Atribuio e declarao
Atribuir um valor qualquer para uma constante ou uma varivel requer
o uso do sinal de ou =. Isso quer dizer que o valor na frente do sinal ser armazenado no elemento anterior ao sinal de atribuio. Veja:
nome Joozinho
idade 10
pi 3.14
Figura 2
Estrutura de
pseudocdigo.
Incio
nome Joozinho
idade 15
salrio 1500
Fim
1.4. Operadores
Os operadores so utilizados pelos pseudocdigos. O mesmo acontece com as
linguagens de programao, cuja funo realizar as diferentes operaes de
aritmtica e de lgica em um ambiente computacional.
Aritmticos
Esse grupo tem como responsabilidade realizar as operaes aritmticas
(tabela 2) de um pseudocdigo. As operaes sero realizadas de acordo
com a prioridade, ou seja, parnteses, potncia, multiplicao, diviso e,
por ltimo, soma e subtrao.
27
Informtica 4
captulo 1
Tabela 2
Operadores aritmticos
Para compreender o processo lgico de dados, observe as tabelas abaixo, mostrando os valores originais e os resultados adquiridos a partir dos operadores
lgicos. Esse tipo de quadro conhecido como Tabela Verdade (tabela 5).
Tabela 5
No // Not
Valor Entrada 01
Verdadeiro
Falso
Resultado
Falso
Verdadeiro
chave 1
E // And
Relacionais
Os operadores relacionais (tabela 3) permitem a execuo de testes entre constantes e variveis.
Valor Entrada 01
Verdadeiro
Verdadeiro
Falso
Falso
Tabela 3
operadores relacionais
Igual
<>
Diferente
> Maior
< Menor
Lgica E
Resultado
Verdadeiro
Falso
Falso
Falso
Ou // Or
Valor Entrada 01
Verdadeiro
Verdadeiro
Falso
Falso
Valor Entrada 02
Verdadeiro
Falso
Verdadeiro
Falso
Resultado
Verdadeiro
Verdadeiro
Verdadeiro
Falso
lmpada
bateria
lgica ou
Valor Entrada 02
Verdadeiro
Falso
Verdadeiro
Falso
chave 2
1.5. Comandos
Uma ao para o computador definida com um comando que executa determinada operao (mostrar os dados e realizar um clculo, por exemplo). Essas
aes sero representadas nos pseudocdigos por meio de expresses predefinidas na lgica computacional.
Comando Escreva()
Tabela 4
operadores lgicos
No / Not
utilizado para mostrar a sada de dados (figura 3), ou seja, quando uma mensagem ou resultado de uma operao dever ser exibida ao usurio. Para que
seja possvel a visualizao do dado, alguns cuidados so fundamentais: as expresses devem aparecer entre aspas, exceto as variveis e valores (inteiros ou
flutuantes).
Ou / Or
28
valor 10
Escreva(valor)
Figura 3
Escreva(bom dia)
E / And
Escreva(56)
Comando Escreva().
Mensagem ou
varivel
29
Informtica 4
captulo 1
Programa exemplo_escreva
Declare
Inicio
nota1 10.0
nota2 2.0
nome Fulaninho
Comando Leia()
Figura 5
Leia(nota1)
Leia(nota2)
Entrada de Dados.
Leia(nome)
Leia(temp)
Entrada de dados
Ao realizar uma entrada de dados, o ideal que o usurio seja notificado sobre
o tipo de informao que dever ser inserida. Veja como:
30
Sua nota
final
Leia(nota1)
Escreva(Qual a sua nota 2?)
Leia(nota2)
media (nota1 + nota2)/2
Escreva(Sua mdia final :)
Escreva(media)
mdia (nota1+nota2)/2
mdia
nome Fulaninho
nota1 10.0
nota2 2.0
Fim
Leia(nome)
Incio
Fluxograma Escreva.
Escreva(calculando a mdia)
Figura 4
Incio
Fim
Escreva(mdia)
Declare
Programa exemplo_leia
Fim
31
Informtica 4
captulo 1
Qual a sua
nota 1
Incio
nota1
mdia
Fim-Se
Qual a sua
nota 2
Sua mdia
final
Fim
Podemos organizar o comando Se(), para criar desvios condicionais de verdadeiro ou falso no mesmo teste (figura 8):
Figura 8
Calculando a
mdia
Qual o seu
nome?
nota2
Se...Seno...Fim-Se.
Se (condio) Ento
{comando(s) condio verdadeira}
mdia =
(nota1+nota2)/2
Seno
Fim-Se
Figura 6
Fluxograma Leia.
Figura 7
Se...Fim-Se.
No
Se (condio) Ento
Fim-Se
Sim
Seno
32
{comando(s)}
Sim
Fim-Se
33
Informtica 4
captulo 1
Figura 9
Exemplo de teste.
Incio
nota1
Qual a sua
nota 01?
nome
nota2
Declare
Qual o seu
nome?
(nota1 + nota2)/2
Sua mdia
final
mdia
Programa exemplo_teste
Calculando
a mdia
Qual a sua
nota 02?
mdia =
Incio
Aprovado
Fim
Fim do
programa
Sim
mdia >=7.00
Escreva(calculando a mdia)
Leia(nome)
Leia(nota1)
Leia(nota2)
Caso condio 01
Escreva(mdia)
34
Fim
Escreva(Aprovado)
Seno
No
Estrutura de deciso
Selecione Caso...Seno...Fim-Selecione
Reprovado
Escreva(Reprovado)
Fim-Se
Escreva(Fim de programa)
{comando(s)}
Sim
No
{comando(s)}
Seno
{comando(s)}
Caso condio 03
Selecione Caso.
Caso condio 02
Figura 10
Sim
{comando(s)}
Fim-Selecione
35
Informtica 4
captulo 1
Leia(nmero)
Figura 12
Para <varivel> = <vlr.inicial> At <vlr.final> Passo <arg> Faa
Caso 1
Para...Fim-Para.
{comando(s)}
Fim-Para
Caso 2
Cont = Inicial at
Final
Caso 3
Comando(s)
Seno
Escreva(Nmero invlido)
Fim-Selecione
Alguns exemplos:
Figura 11
Para x = 1 At 5 Faa
Escreva(x) // Sero visualizados os nmeros: 1,2,3,4 e 5.
Fim-Para
Selecione caso.
No
nmero
Alm dos desvios sequenciais, possvel criar desvios em loop, ou seja, repetir
trechos do algoritmo sobre determinada condio e controlar a forma com que
os loops sero executados. O comando Para...Fim-Para permite que uma varivel
realize a contagem do nmero de loops a executar, conforme a indicao inicial
e final dessa contagem (figura 12), e tambm identifique o formato em que essa
tarefa ser realizada.
01
No
Voc escolheu
o nmero 01
No
03
02
Sim
Para num = 3 At 6 Faa
Escreva(num) // Sero visualizados os nmeros: 3,4,5 e 6.
Fim-Para
Sim
Voc escolheu
o nmero 02
Sim
Voc escolheu
o nmero 03
Nmero
invlido
Para vlr = 0 At 10 Passo 2 Faa
Escreva(vlr) // Sero visualizados os nmeros: 0,2,4,6,8 e10.
Fim-Para
Para cont = 3 At 0 Passo -1 Faa
Escreva(cont) // Sero visualizados os nmeros: 3,2,1 e 0.
Fim-Para
36
37
Informtica 4
captulo 1
Enquanto (condio) Faa
{comando(s)}
Fim-Enquanto
Repita
{comando(s)}
At que (condio)
Figura 14
Repita...Fim-Repita.
Condio
comando(s)
Comando(s)
Repita (condio)
38
x1
Repita
Escreva(x) // Sero visualizados os nmeros: 1,2,3,4 e 5.
xx+1
At que (x<=5)
num 3
Repita
Escreva(num) // Sero visualizados os nmeros: 3,4,5 e 6.
num num + 1
At que (x<=6)
vlr 0
Repita
Escreva(vlr) // Sero visualizados os nmeros: 0,2,4,6,8 e 10.
vlr = vlr + 2
At que (vlr <=10)
cont 3
Repita
Escreva(cont) // Sero visualizados os nmeros: 3,2,1 e 0.
cont cont -1
At que (cont >=0)
39
Informtica 4
captulo 1
1.6. Vetor
Definido tambm como matriz unidimensional, um vetor (tabelas 6 e 7) uma
varivel que possui vrios dados, acessados por meio de uma posio relativa,
seguindo a mesma regra da concepo e atribuio das variveis.
Tabela 6
Vetor de Letras.
J G
10
Programa vetores
Declare
vet como conjunto[1..5] de inteiro
Incio
vet[1] 90
vet[2] 1
vet[3] 100
vet[4] 4 - 1
vet[5] 21
Fim
Para realizar o acesso posio de um vetor, preciso identificar a posio que
est entre os sinais de [], logo aps o nome do vetor:
Tabela 7
Vetor de Nmeros.
10
10
56
-4
60
99
Escreva(vet[3])
Leia(vet[2])
-10
Posio 1 valor A
Posio 5 valor R
Posio 8 valor Q
A entrada de dados em um vetor realizada por intermdio de seu identificador. Para isso, utiliza-se um contador crescente ou decrescente, de acordo com
a necessidade. Vamos carregar 10 informaes numricas dentro de um vetor.
vet como conjunto[1..10] de inteiro
Para i = 1 At 10 Faa
Escreva(Digite um valor na posio, i, do vetor)
Leia(vet[i])
Fim-Para
Seguindo a mesma lgica, podemos realizar a impresso do contedo desse vetor.
Para i = 1 At 10 Faa
Escreva(Valor da posio:, i, do vetor , vet[i])
Fim-Para
Vamos reunir os conceitos de leitura e impresso no mesmo algoritmo.
Programa vetor_dados
Declare
vet como conjunto[1..10] de inteiro
i como inteiro
Incio
Para i = 1 At 10 Faa
Escreva(Digite um valor na posio, i, do vetor)
41
Informtica 4
captulo 1
Leia(vet[i])
Fim-Para
Para I = 1 At 10 Faa
Escreva(Valor da posio:, i, do vetor , vet[i])
Fim-Para
Fim
Outro exemplo para analisar:
Programa mdia
Declare
vetor como conjunto[1..8] de inteiro
soma, mdia como flutuante
ct como inteiro
Incio
soma = 0
Para ct = 1 At 8 Faa
Escreva(Digite um valor na posio, ct, do vetor)
Leia(vetor[ct])
soma soma + vetor[ct]
Fim-Para
mdia soma / 8
---- ou ---- mdia soma / ct
Escreva(A mdia final :, mdia)
Fim
1.7. Matriz
A matriz, ao contrrio do vetor, multidimensional. Nesse caso, os dados so
armazenados ou lidos de acordo com a relao entre os eixos, e seu ndice representado por dois ou mais valores. Uma matriz 3x2, por exemplo, possui trs
linhas por duas colunas. Portanto, qualquer referncia aos dados dever apontar
para ambas as posies da forma matriz[2,1], indicando que a informao referenciada est na linha 2 e na coluna 1 da matriz. Graficamente, tem-se:
matriz[2,1]
1
2
1 9 20
2 10 6
3 2 11
matriz 3x2
Programa matriz
Declare
mat como conjunto[1..5][1..3] de inteiro
Incio
{comando ou bloco de comandos}
Fim
Assim como os vetores, para a atribuio de valores em uma matriz, devemos
identificar a linha e a coluna.
Programa matriz
Declare
mat como conjunto[1..2][1..2] de inteiro
Incio
mat[1,1] 19
mat[1,2] 2
mat[2,1] 77
mat[2,2] 16
Fim
Informtica 4
captulo 1
Outro exemplo:
Programa soma
Declare
a,b,c como conjunto[1..8][1..4] de flutuante
ln, cl como inteiro
Incio
Para ln = 1 At 8 Faa
Para cl = 1 At 4 Faa
Escreva(Digite o valor para a Matriz A:)
Leia(a[ln, cl])
Escreva(Digite o valor para a Matriz B:)
Leia(b[ln, cl])
Escreva(Valores somados para a Matriz C:)
c[ln, cl] = a[ln, cl] + b[ln, cl]
Escreva(c[ln, cl])
Fim-Para
Fim-Para
Fim
Procedimento
Um procedimento, assim como o programa principal, formado por toda a estrutura lgica (incio-fim, variveis e instrues). Pode ser utilizado em qualquer
parte de um programa que seja referenciado. Dessa forma, ao ser acionado, o
procedimento assume o controle da execuo. E, quando finalizado, o controle
retorna ao programa principal.
Procedimento nome-do-procedimento ( parmetro:tipo )
Declare {variveis}
{comando ou bloco de comando
Fim-Procedimento
O nome-do-procedimento faz a identificao do programa e por essa expresso que ele ser referenciado. Logo aps essa etapa, encontramos os parmetros e a definio de seu tipo, os quais representam variveis que recebero
valores no momento da chamada. Assim como o cdigo principal, o procedimento possui as variveis locais de manipulao de dados e os comandos
necessrios para a sua execuo.
44
Programa procedimento
Declare
op como caractere
Procedimento bomdia
Escreva(Bom dia!!!!!)
Fim-procedimento
Incio
Escreva(Deseja ver nossa mensagem? (S/N))
Leia(op)
Se op = S Ou op = s Ento
bomdia
// chamada ou procedimento
Fim-Se
Fim
Programa tipos_variaveis
Visualizao das variveis
(a) e (b)
Procedimento teste
Visualizao das variveis (a),(b),(x) e (y)
Informtica 4
captulo 1
Funo
Programa quadrado
Declare
op como caractere
Procedimento quadrado
Declare
lado, rea como inteiro
Escreva(Digite um nmero inteiro:)
Leia(lado)
rea lado * lado
Escreva(A rea do quadrado :, rea)
Fim-Procedimento
Incio
Escreva(Gostaria de saber a rea de um quadrado (S/N)?)
Leia(op)
Se op = S Ou op = s Ento
quadrado
Fim-Se
Fim
Passagem de parmetro
A passagem de parmetros por valor utilizada para que as sub-rotinas possam
receber informaes e realizar qualquer tipo de manipulao fora do pseudocdigo principal.
Programa quadrado
Declare
op como caracter
lado como inteiro
Procedimento quadrado (ld como inteiro)
Declare
area como inteiro
rea ld * ld
Escreva(A rea do quadrado :, area)
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
46
Fim
Fim-Se
47
Captulo 2
Estrutura de dados
Lista encadeada
Lista circular
Lista duplamente encadeada
Pilhas
Filas
rvores
Informtica 4
captulo 2
incio
vazio II NULL
incio
vazio II NULL
Figura 16
Insero de elemento.
Figura 17
Eliminao de um elemento.
Figura 15
Lista encadeada.
incio
incio
incio
50
51
Informtica 4
captulo 2
Figura 18
Lista circular.
25
15
40
15
15
10
INFO 003 II posio 03
Tabela 8
2.4. Pilhas
Em uma lista circular o ltimo elemento dever apontar para o primeiro (figura
18). Para percorrer a lista preciso visitar todos os seus elementos, a partir de um
ponteiro inicial, at chegar a ele novamente. Caso o ponteiro inicial seja NULL,
a lista ser considerada vazia.
A pilha uma estrutura bem simples, muitas vezes encontrada dentro do hard
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
que pode ser retirado. Portanto, o primeiro que sai o ltimo que entrou. Temos, nesse caso, o LIFO (do ingls last in, first out, ou ltimo dentro, primeiro
fora). H duas operaes bsicas, para trabalhar com as pilhas: push (empilhar)
e pop (desempilhar) (tabela 8).
2.5. Filas
Na lista encadeada h um ponteiro indicando o prximo elemento. J na duplamente encadeada so dois ponteiros: um mostrando o elemento seguinte e
outro, o anterior. A partir de um elemento podemos acessar ambos os lados
(figura 19).
Figura 19
Lista duplamente
encadeada.
II posio 02
II posio 02
II posio 02
Tabela 9
Entrada e sada
de uma fila.
10
20
35
10
20
10
52
Push e pop
em uma pilha.
15
10
15
15
20
35
53
Informtica 4
captulo 2
Figura 20
Figura 22
rvore e
seus ns.
Esquema da
rvore Binria.
raiz
2.6. rvores
Os tpicos anteriores representam a disposio de dados lineares. As rvores,
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.
Os demais ns so identificados como internos ou filhos (figura 20).
rvores binrias
sae
sad
Na rvore binria cada n tem zero, um ou, no mximo, dois filhos. Ento,
possvel definir uma rvore binria como vazia ou um n raiz com duas subrvores uma na direita (sad) e outra na esquerda (sae) (figura 22).
rvore genrica
Na rvore binria h restrio quanto ao nmero de ns: no mximo dois. Esse
limite no acontece nas rvores genricas (figura 23).
Figura 23
rvore genrica.
54
55
Captulo 3
Criao de
pginas Web
Identificao do documento
Estrutura do documento
Formatao
Texto
Cores
Tabelas
Imagens
Links
Formulrios
XML
Informtica 4
captulo 3
Pgina de HTML do
Centro Paula Souza.
DICA
Da mesma maneira como acontece com o HTML, existem tambm especificaes DOCTYPE para os documentos XHTML.
XHTML 1.0 Transacional: utiliza recursos obsoletos.
<!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//
ENhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
XHTML 1.0 Strict: segue padres exigidos pelo W3C, ou seja, cumpre as especificaes.
<!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Strict//EN
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd>
O W3C
Fundado em 1994,
o W3C (World Wide
Web Consortium)
ou Consrcio da
Rede Mundial de
Computadores)
formado por empresas
de tecnologia
de diferentes partes
do mundo
que trabalham
para criar padres
e diretrizes para
a interpretao de
contedos da web.
O grupo desenvolve
protocolos, promove
fruns abertos, entre
outras aes. Mais
informaes podem
ser obtidas no site
http://www w3c.br.
O documento HTML ou XHTML recebe as extenses .htm ou .html, associadas aos navegadores.
58
59
Informtica 4
captulo 3
3.3. Formatao
As pginas devem ser criadas conforme as recomendaes do W3C, evitando,
principalmente na formatao, o uso de tags desaprovadas. Portanto, deve-se
utilizar o CSS (Cascading Style Sheet ou Estilo Pginas em Cascata), para fazer
a formatao correta do documento. A insero dessa formatao realizada por
meio da tag <style> e poder ser aplicada em trs nveis diferentes:
Nvel Local quando h necessidade de formatar uma tag especial.
Nvel Geral quando as formataes sero usadas em todo o documento.
Nvel Global quando possvel associar os estilos de formatao com
outros documentos ou projetos.
Todas as aplicaes so corretas e nada impede o uso dos trs mtodos no mesmo documento.
Regras
Escreva todas
as tags e atributos
em letras minsculas
e os atributos
entre aspas.
Tag uma palavra-chave (relevante) associada a uma informao, que muito comum na linguagem de programao de computador. possvel atribuir
propriedades de formatao s tags, que devero estar entre {}, observando
{propriedade:valor}. Se houver mais de uma declarao, deve-se separ-las por ;
<style type=text/css>
body {background:blue;
color:yellow}
</style>
No estilo determinado para a tag <body>, duas propriedades foram selecionadas: a cor de fundo estilo skyblue e a cor amarela das letras (figura 25).
<body style=background:skyblue>
Figura 25
Regras de formatao.
Figura 24
Ttulo do
documento.
60
61
Informtica 4
captulo 3
Figura 26
Formatao na tag.
/* CSS Document */
body {background:skyblue}
62
Classes e identificadores
As classes permitem que vrios estilos sejam aplicados na mesma tag. Dessa
forma, devemos colocar o class junto tag.
<!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>Utilizao de Classes</title>
<style type=text/css>
p.um {background:blue;
color:yellow}
p.dois {background:yellow;
color:blue}
</style>
</head>
<body>
<p class=um> Minha pgina, usando a classe um </p>
<p class=dois> Minha pgina, usando a classe dois </p>
</body>
</html>
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 figura 27.
Usamos os identificadores quando no queremos vincular a formatao a
uma determinada tag. Os identificadores so nomes definidos pelos programadores, geralmente associados ao estilo de formatao a ser utilizada.
Figura 27
Classes em CSS.
63
Informtica 4
captulo 3
Foram criados dois estilos para o texto: um na cor vermelha e outro na cor azul.
Para acionar os identificadores foi utilizada a tag <div> e, na sequncia, o nome
do identificador. O resultado pode ser conferido na figura 28.
O programador pode utilizar classe ou identificador. No h restries. O importante seguir as especificaes corretas para o desenvolvimento de um documento padronizado e validado pelo W3C.
Fonte
Uma fonte de letra poder ser modificada conforme a sua famlia (Verdana,
Arial, Times etc.), tamanho, estilo (itlico, regular, etc.) e peso (negrito).
Font-Size
Este tpico indica o tamanho da fonte, definido com base em determinada
unidade de medida. As unidades mais comuns para os padres web so pontos
(pt) e pixel (px).
Figura 28
Identificador.
3.4. Texto
A insero de texto realizada diretamente no corpo do documento, geralmente
utilizando a tag <p> </p> para identificar o incio e o fim do pargrafo respectivamente. Por exemplo:
Outra tag que dever ser levada em considerao a <br>, que realiza a quebra
automtica do texto para outra linha.
64
65
Informtica 4
captulo 3
Font-Family
preciso escolher com cuidado o tipo de letra a ser utilizado. As fontes menos comuns podem at ser bonitas, mas tambm so as que mais tm chance de provocar
a desconfigurao visual de um projeto. Portanto, procure utilizar fontes-padro
e, de preferncia, de boa visualizao, seguindo as normas de acessibilidade.
Um recurso interessante para a definio das fontes a criao de uma lista. Se
no acharmos a primeira fonte listada, partimos para a segunda, e assim sucessivamente. Se no encontrarmos nenhuma fonte, a alternativa recorrer fontepadro do navegador. Nesse caso, o resultado ser outro (figura 31).
<style type=text/css>
#titulo {font-size:12pt;
font-family:Geneva, Arial, Helvetica, sans-serif}
#texto1 {font-size:12px;
font-family:Arial, Helvetica, sans-serif}
#texto2 {font-size:10px;
font-family:Times New Roman, Times, serif}
</style>
Dica
Utilize a tag
<div> quando for
trabalhar com os
identificadores
e a tag<span>
para as classes.
Figura 31
Font-Family.
Font-Weight
Font-Style
Um dos estilos mais usados o itlico. Aqui, vamos usar uma classe na tag
<span> para a ativao.
66
A expresso identifica o peso da fonte e notado quando utilizamos determinada fonte em negrito. Para efeito de comparao, uma fonte normal tem valor
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,
500, 600, 700, 800 e 900. Fazendo algumas modificaes no exemplo anterior,
podemos obter outro resultado (figura 33).
67
Informtica 4
captulo 3
#texto2
{font-size:10px;
font-family:Times New Roman, Times, serif;
font-weight:700}
.estilo {font-style: italic;
font-size:20px;
font-weight:900}
Figura 33
Font-Weight.
Text-Transform
Modifica a configurao da letra diferenciando caracteres maisculos de minsculos.
Text-Decoration
O Text-Decoration, ou decorao de texto, representado por uma linha junto ao
texto. O mais comum o sublinhado, usado em palavras que indicam um link.
Nesse exemplo, vamos incorporar uma facilidade do CSS, que a formatao de
vrios identificadores em uma nica linha, e depois formataes especficas.
Transitional//EN
http://www.w3.org/TR/html4/loose.dtd>
<html>
<head>
charset=iso-8859-1>
<!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=iso-8859-1>
<title>Formatao de Texto</title>
<style type=text/css>
#estilo1, #estilo2, #estilo3, #estilo4 {font-size:15pt}
#estilo1 {text-decoration: line-through}
#estilo2 {text-decoration: none}
#estilo3 {text-decoration: overline}
#estilo4 {text-decoration: underline}
</style>
</head>
<body>
<div id=estilo1>Texto Decorado - Estilo 01</div>
<div id=estilo2>Texto Decorado - Estilo 02</div>
<div id=estilo3>Texto Decorado - Estilo 03</div>
<div id=estilo4>Texto Decorado - Estilo 04</div>
</body>
</html>
68
<title>Formatao de Texto</title>
<style type=text/css>
</style>
</head>
<body>
</body>
</html>
O resultado final (figura 35) mostra o efeito de capitalize para a primeira letra
de cada palavra em maiscula, lowercase para todas as minsculas, none para o
original e uppercase para todas as maisculas.
69
Informtica 4
captulo 3
Figura 35
Text-Transform.
3.5. Cores
Text-Align
Conhecimento
das cores
#texto {color:blue}
Para obter mais opes de cores, podemos utilizar as referncias em hexadecimal, cujos valores representam o sistema RGB (do ingls Red, Green e
Blue, ou seja, vermelho, verde e azul). Cada par de valores em hexadecimal
representa a fora de um elemento no sistema RGB (tabela 10).
R
COR
DESCRIO
00
00
00
#000000
preto
FF
FF
FF
#FFFFFF
branco
FF
00
00
#FF0000
vermelho
CF
CF
CF
#CFCFCF
tonalidade de cinza
Tabela 10 Hexadecimal.
Nesse exemplo, o alinhamento serve de referncia para uma pgina da web (figura 36).
Figura 36
Text-Align.
70
A representao
hexadecimal das cores
foi adotada porque
a decimal fica muito
extensa. Se 0 igual
a 0 em hexadecimal,
10 equivale a A, 125 a 7D
e 255 a FF. A cor, assim,
pode variar de 00 a FF,
que so combinados para
se obter intensidade,
tonalidades. Como
o branco a mistura
de todas as cores,
representado por seis
F. J o preto, que
ausncia de cor (na
verdade, de reflexo de
luz), representa-se com
seis 0. bom lembrar
que o conhecimento das
cores remete a 1665. Foi
quando Isaac Newton,
aos 23 anos e de frias
foradas no campo
para fugir da peste
que assolava a Europa,
conseguiu separar as
cores da luz branca do
Sol por meio de um
prisma e algumas lentes.
71
Informtica 4
captulo 3
3.6. Tabelas
A tabela um dos recursos mais usados para organizar as informaes em uma
pgina. Mas para mont-la precisamos de uma srie de marcaes que nos permitiro organizar a sua estrutura.
TABLE Identifica o incio e o fim da tabela.
TR Linhas da tabela.
TD Colunas da tabela.
TH Representa a coluna da tabela para ttulos, formatando o texto em
negrito.
A estrutura da tabela dever obedecer composio de suas linhas e colunas. O
exemplo da figura 37 mostra uma tabela 2x2.
<!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=iso-8859-1>
<title>Tabela</title>
</head>
<body>
<table border=1px>
<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>
</body>
</html>
Nesse primeiro momento de desenvolvimento interessante manter a borda da
tabela, porque facilita a verificao de sua estrutura (figura 37).
Figura 37
Tabela 2x2.
72
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
nenhuma tag (palavra-chave) (figura 38).
<table border=1px>
<tr> <td>
<table border=1px>
<tr> <td> linha 01 - coluna 01 </td> </tr>
<tr> <td> linha 02 - coluna 01 </td> </tr>
</table>
</td>
<td>
<table border=1px>
<tr> <td> linha 01 - coluna 02 </td> </tr>
<tr> <td> linha 02 - coluna 02 </td> </tr>
</table>
</td></tr>
<tr> <td> coluna 01 </td>
<td> coluna 02 </td> </tr>
</table>
Figura 38
Tabelas internas.
Vamos associar a tabela aos recursos do CSS (Cascading Style Sheets ou Estilo Pginas
em Cascata), por meio das classes e dos identificadores, para formatao e alinhamento do texto, alm de aplicao de cores utilizando o exemplo anterior (figura 39).
<!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=iso-8859-1>
<title>Tabela</title>
<style type=text/css>
table
{color: #0033CC}
td
{ text-align:center}
.coluna1
{background:#FF3300;
color:#FFFF00}
73
Informtica 4
captulo 3
#coluna2
{background: #33FF33;
color: #6633FF}
</style>
</head>
<body>
<table border=1px>
<tr> <td>
<table border=1px>
<tr> <td> linha 01 - coluna 01 </td> </tr>
<tr> <td class=coluna1> linha 02 - coluna 01 </td> </tr>
</table>
</td>
<td>
<table border=1px>
<tr> <td id=coluna2> linha 01 - coluna 02 </td> </tr>
<tr> <td> linha 02 - coluna 02 </td> </tr>
</table>
</td></tr>
<tr> <td style=font-size:24px> coluna 01 </td>
<td style=font-size: 8px> coluna 02 </td> </tr>
</table>
</body>
</html>
Transitional//EN
http://www.w3.org/TR/html4/loose.dtd>
<html>
<head>
charset=iso-8859-1>
<style type=text/css>
table {text-align:center}
.coluna1 {width:200px}
coluna2 {width:400px}
</style>
</head>
<body>
Tabela formatada.
<title>Tabela</title>
Figura 39
tr {height:60px}
td {width:350px}
</style>
</head>
<body>
</body>
</html>
<tr> <td> linha 02 - coluna 01 </td> <td> linha 02 - coluna 02 </td> </tr>
</table>
<tr> <td> linha 01 - coluna 01 </td> <td> linha 01 - coluna 02 </td> </tr>
74
<style type=text/css>
</table>
75
Informtica 4
captulo 3
Estilo de bordas
3.7. Imagens
Ao utilizar o CSS, poderemos realizar diferentes aplicaes nas bordas das tabelas. Os exemplos abaixo mostram os diferentes efeitos em um nico cdigo.
Figura 41
BMP a
terminao usada
para a unidade
Bitmap, que
significa mapa de
bits. Nesse tipo de
representao, cada
ponto da imagem
associado a
um valor (no caso, o
bit). JPG (ou JPEG):
Joint Photographic
Experts Group
ou Grupo Reunido
de Especialistas
em Imagem.
GIF: Graphics
Interchange Format
ou Formato de
Intercmbio de
Grficos.
Vamos utilizar o cdigo a seguir para reproduzir uma imagem correta e outras
duas com distoro (largura e altura).
<!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=iso-8859-1>
<title>Imagem</title>
</head>
<body>
<img src=programador.jpg width=100px height=100px
alt=Programador>
<img src=programador.jpg width=100px height=50px
alt=Programador>
<img src=programador.jpg width=50px height=100px
alt=Programador>
</body>
</html>
Formatao de borda.
77
Informtica 4
captulo 3
Figura 42
3.8. Links
Imagem distorcida.
Os links so responsveis pela navegabilidade entre as pginas da web. Permitem 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 43
Utilizao do Alt.
Programador
Para acessar links de outros sites, devemos informar toda a URL (Uniform Resource Locator ou Localizador de Recursos Universal), para que a pgina seja
localizada (figura 45).
Figura 45
Link para o
Centro Paula Souza.
Organizar os documentos que seguiro para um servidor da web para ser publicados exige que as imagens sejam alocadas em uma nica pasta, que dever
ser referenciada na tag <img>. No exemplo, a pasta especificada Imagens.
height=100px alt=Programador>
Bordas na imagem
A aplicao de bordas na imagem ser feita pelo CSS diretamente na tag (figura 44).
<img src=../Imagens/programador.jpg width=100px
height=100px alt=Programador style=border:solid; border-
width:10px>
Figura 44
Imagem com borda.
79
Informtica 4
captulo 3
Figura 47
Pgina 01.
81
Informtica 4
captulo 3
3.9. Formulrios
Podemos inserir imagens associadas aos links, deixando a navegao mais intuitiva. H, porm, problemas recorrentes, como a eliminao das marcaes
do tipo ativo e visitado, normalmente representadas pela mudana de cores.
Outro obstculo enfrentado pelo internauta so as bordas das imagens acessadas
por meio de links. O cdigo a seguir apresenta uma soluo para esses problemas (figura 49).
http://www.google.com.br/search?hl=pt-BR&source=hp&q=centro&meta=&aq=f&oq=
POST: as informaes so enviadas depois que a URL for ativada. Isso significa
que o servidor sabe que, depois de receber uma ativao de URL, deve aguardar a entrada de novos dados, os quais, portanto, no so visualizados na web
(MARCONDES, 2002).
Todo formulrio tem a tag <form>, que identifica o incio, e </form>, para sinalizar o fim. Somente o que est entre essas tags ser considerado dado vlido
para envio.
O formulrio pode receber uma identificao feita por name (nome). Isso ajudar no tratamento dos dados, futuramente. Temos ainda a action (ao) do
formulrio, que indica a aplicao servidora que receber os dados. Por exemplo:
Entrada de texto
A forma mais simples de entrada de dados a do tipo text (texto), que permite
a abertura da caixa de entrada para que o usurio possa digitar as suas informaes. Alm disso, admite um valor padro j includo pelo value (valor),
limita a quantidade de caracteres a serem digitados maxlength (comprimento
mximo) e o tamanho da janela de entrada size.
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
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).
Figura 51
Entrada de
login e senha.
Comentrio
Para entrada de textos maiores, utilizamos a tag <textarea>, que permite criar
uma janela com especificaes de linha e coluna.
Outro recurso a opo pr-selecionada, acessada por meio da expresso selected (selecionada) em um dos itens definidos por option.
Figura 54
Opo pr-selecionada.
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
Botes checkbox
Textarea Comentrio.
Opo select
Representa as caixas tipo combos, presentes na maioria das aplicaes, nas quais
uma srie de opes fica disponvel para o usurio.
84
Os botes checkbox (que significa verificao da caixa) permitem que o usurio escolha entre sim ou no. So usados normalmente para perguntas simples que oferecem apenas essas duas alternativas como resposta. Em propriedades, podemos indicar a palavra name, que ser fundamental para o controle
dos dados para validao, assim como o checked (controlado) para opes j
selecionadas.
85
Informtica 4
captulo 3
Figura 55
Botes checkbox.
Botes de Radio
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 importante manter o mesmo name nos controles, para que possa ser criado vnculo
entre eles.
<p>Estado Civil:<br>
<input type=radio name=civil> Solteiro
<input type=radio name=civil> Casado
<input type=radio name=civil> Outros </p>
<p>Jornada de Trabalho:<br>
<input type=radio name=trab checked> Manh
<input type=radio name=trab> Tarde
<input type=radio name= trab> Noite </p>
Botes
Utilizamos os botes para indicar o tipo de ao a ser realizada com os dados do
formulrio. Existem trs tipos de botes com funes especficas:
RESET (restabelecer): limpa todas as informaes do formulrio e no envia
mais nada.
SUBMIT (envio): manda as informaes de acordo com as condies do method (mtodo) e do action do formulrio.
86
Formulrio
At aqui apresentamos os elementos comuns para a elaborao de um formulrio.
Agora, o momento de colocar todos os recursos em um nico documento.
<!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=iso-8859-1>
<title>Cadastro de Cliente</title>
<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>
<body>
<span class=titulo>Cadastro de Cliente</span>
<form action= method=post name=cadastro></form>
<p> Nome completo
<input type=text value=seu nome aqui size=40 maxlength=35> </p>
<p> Login <input type=text value= size=20 maxlength=20>
Senha <input type=password value= size=8 maxlength=8> </p>
87
Informtica 4
captulo 3
3.10. XML
A XML (eXtensible Markup Language ou Linguagem de Marcao Extensiva),
assim como o HTML, uma linguagem de marcao que permite a manipulao dos dados de forma mais precisa. Isso assegura informaes uniformes
e independentes de aplicao ou de fornecedor que, dessa forma, podem ser
utilizadas em diferentes nveis de aplicao. J a XML, dependendo do nvel de
anlise (RAY, 2001), considerada um modelo de gerenciamento de informaes e ainda pode ser formatada ou filtrada.
A XML no apenas mais uma linguagem de marcao como a HTML, que
especifica a formatao de uma palavra ou um trecho de texto. A XML permite
a definio de tags personalizadas. Isso ajuda a tornar o documento mais inteligente, j que o texto armazenado entre as tags ganha um significado especfico
(FURGERI, 2001). Possibilita, tambm, que o documento seja criado com uma
estrutura facilmente compreendida por seres humanos e mquinas. A afirmao
fica bem clara no exemplo seguinte, no qual fcil reconhecer que 5,20 se
refere ao preo do produto.
<pedido>
<produto>
<codigo>MF45-KJ90</codigo>
<descritivo>Parafuso de 15mm</descritivo >
<valor>5,20</valor>
</produto>
<pedido>
88
89
Informtica 4
captulo 3
Verificao
Diretivas
A maioria dos editores que atuam na web pode criar documentos XML. Uma
maneira rpida para verificar se a estrutura do documento est correta abri-lo
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
certo, ser possvel visualizar claramente o contedo (figura 60).
Figura 60
Verificao de
documento.
91
Captulo 4
Lgica de programao
aplicada linguagem Java
A Plataforma de desenvolvimento
Origem da orientao a objetos
UML (Unified 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 grficas
Tratamento de excees
Conexo com bancos de dados
Informtica 4
captulo 4
Figura 61
( esquerda)
*7 StarSeven,
o ponto de partida.
Figura 62
Smalltalk-80,
ou simplesmente
Smalltalk, uma
linguagem de
programao
puramente orientada
objetos. Isso significa
que em Smalltalk tudo
objeto: os nmeros,
as classes, os mtodos,
os blocos de cdigo
etc. Tecnicamente,
todo elemento
um objeto de
primeira ordem.
ingls), em homenagem a uma rvore que podia ser vista da janela da sede da Sun.
Descobriu-se mais tarde que j havia uma linguagem de programao chamada
Oak, o que implicava a necessidade de se buscar outro nome para a desenvolvida
na empresa e assim nasceu o nome Java. H, porm, outras verses para a origem
do nome. Uma delas diz que foi escolhido quando a equipe visitou uma cafeteria
local que tinha o nome Java, em referncia cidade de origem de um tipo de caf
importado pelo estabelecimento. Essa verso explica a xcara estilizada estampada
no logo do Java (figura 62).
O projeto Green passou por algumas dificuldades. O mercado de dispositivos eletrnicos inteligentes, voltado para o consumo popular, no incio da dcada de 1990,
no se desenvolvia to rpido como a Sun havia previsto. Por isso, corria o risco de
ser cancelado. Por uma feliz coincidncia, a www (World Wide Web, rede mundial
94
Kenneth Thompson
(ou Ken Thompson) - cientista
computacional conhecido por sua
influncia no sistema operacional
UNIX. Nasceu em 1943 em Nova
Orleans, Louisiana, EUA, e tem
mestrado pela UC Berkeley. Foi o
criador da linguagem B, em 1969, no
centro de pesquisas da AT&T Bell
Labs, onde nasceram tecnologias
consideradas revolucionrias (desde cabos de telefone, transistores,
LEDs e lasers at linguagem de programao C e o sistema
operativo Unix, que hoje de propriedade do The Open Group,
consrcio formado por empresas de informtica).
Bjarne
Stroustrup
Fotos: divulgao
James Gosling
Cientista da
computao
dinamarqus e
professor catedrtico
da Universidade
do Texas, EUA.
Conhecido como o
pai da linguagem de
programao C++.
95
Informtica 4
captulo 4
trinhas. Mas vamos nos ater ao ambiente de desenvolvimento JSE. O Java comeou 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
correes e um significativo aumento nas APIs (banco de recursos da linguagem,
que ser descrito mais adiante). Nessa etapa, a Sun resolveu trocar a nomenclatura de Java para Java2, para diminuir a confuso entre Java e Javascript e divulgar
as melhorias trazidas pela nova verso. Mas que fique bem claro: no h verso
do Java 2.0. O 2 foi incorporado ao nome (exemplo: Java2 1.2). Depois, vieram
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
correes de erros e melhorias. A partir do Java 5, comearam a surgir diversas
atualizaes, como Java 5 update 7, e Java6 1.6 update 16.
C++
96
B
Sucessora da BCPL, a B foi
desenvolvida no famoso centro de
pesquisas da AT&T Bell Labs em
1969 um trabalho capitaneado por
Ken Thompson com contribuies de
Dennis Ritchie. Ken Thompson utilizou
a linguagem B para criar as primeiras
verses do sistema operacional UNIX.
Hoje obsoleta, mas seu valor
incontestvel por ter sido a precursora
da C. Por isso, uma das mais
populares no mundo.
97
Informtica 4
captulo 4
A plataforma
Java Micro Editon
indicada para
aparelhos como
o Personal Digital
Assistant.
divulga
4.1.3. A portabilidade
Em primeiro lugar, preciso entender o que um programa compilado e um
programa interpretado. Compilao o processo de converso do cdigo fonte
(texto escrito segundo as regras de determinada linguagem de programao)
para a linguagem de mquina (programa pronto para ser executado). Nesse processo, so feitas vrias referncias (e consequentemente suas dependncias) em
99
Informtica 4
captulo 4
Cdigo fonte
Java (.java)
JVM
Windows
Windows
Bytecodes
(.class)
JVM
Linux
Linux
JVM
Solaris
Solaris
Figura 63
Portabilidade Java.
relao ao sistema operacional no qual o programa gerado. J em um programa interpretado a execuo ocorre por meio da leitura, interpretao e execuo
direta do cdigo fonte (no existe o processo de compilao).
Na comparao entre esses dois modelos de desenvolvimento, possvel perceber que os programas compilados oferecem melhor desempenho (velocidade de
execuo), enquanto os interpretados so bem mais lentos. Em contrapartida, os
compilados so totalmente dependentes da plataforma e do sistema operacional
em que foram gerados, ao contrrio dos interpretados.
O Java se aproveita do que h de bom nos dois modelos e descarta os pontos negativos de cada um, por meio da JVM. Um cdigo fonte Java pr-compilado e
convertido em bytecode pela JRE (e no pelo sistema operacional). O bytecode
gerado por meio de recursos da JRE e executado sobre a JVM, ou seja, sem
interao direta com o sistema operacional da mquina em que foi desenvolvido.
No entanto, a JVM precisa interagir com o sistema operacional e, por isso, tem
verses para diferentes sistemas operacionais.
Como tudo passa pela JVM, essa plataforma pode tirar mtricas, decidir qual
o melhor lugar para alocar ou suprimir memria, entre outras funes que antes
ficavam sob a responsabilidade do sistema operacional. A figura 63 mostra como a
portabilidade em aplicaes Java alcanada e qual o papel da JVM nesse contexto.
A orientao a objetos surgiu da necessidade de elaborar programas mais independentes, de forma gil, segura e descentralizada, permitindo que equipes de programadores localizadas em qualquer parte do mundo trabalhem no mesmo projeto. Essa
tcnica de desenvolvimento de softwares, mais prxima do ponto de vista humano,
torna mais simples e natural o processo de anlise de problemas cotidianos e a construo de aplicaes para solucion-los. Para que isso seja possvel, preciso quebrar
paradigmas em relao ao modelo procedural, que tem como base a execuo de
rotinas ou funes sequenciadas e ordenadas para atender aos requisitos funcionais de
uma aplicao. Nele, as regras (codificao) ficam separadas dos dados (informaes
processadas). Por isso, o programador passou a estruturar a aplicao para que, alm
de resolver problemas para os quais foi desenvolvido, o software possa interligar elementos como programao, banco de dados, conectividade em rede, gerenciamento
de memria, segurana etc. Isso aumenta significativamente a complexidade na elaborao e expanso desses softwares.
O modelo orientado a objetos tem como base a execuo de mtodos (pequenas funes) que atuam diretamente sobre os dados de um objeto, levando em conta o modo
como o usurio enxerga os elementos tratados no mundo real. Nessa tcnica, o desenvolvedor cria uma representao do que se pretende gerenciar no sistema (um cliente,
um produto, um funcionrio, por exemplo) exatamente como acontece no mundo
real. Assim, esses elementos podem interagir, trocando informaes e adotando aes
que definem os processos a serem gerenciados pelo sistema. Por exemplo, no processo
de venda de uma empresa podem ocorrer os seguintes passos: um cliente compra
um ou vrios produtos; o cliente atendido por um vendedor; o vendedor tem
direito a comisso.
Ao analisarmos esses processos no mundo real, destacamos como entidades envolvidas os seguintes elementos: cliente, vendedor e produto, assim como a venda e o
clculo e comisso. A partir da anlise orientada a objetos, representamos essas entidades dentro da nossa aplicao com as mesmas caractersticas adotadas no mundo
real (nome, endereo e telefone de um cliente, etc. alm de suas atitudes tpicas numa
transao comercial (cotao, compra, pagamento etc.).
4.2.1. Abstrao
Abstrao a capacidade do ser humano de se concentrar nos aspectos essenciais
de um contexto qualquer, ignorando caractersticas menos importantes ou acidentais. Outra definio: habilidade mental que permite visualizar os problemas do
mundo real com vrios graus de detalhe, dependendo do contexto do problema.
Para o programador que utiliza orientao a objetos, a abstrao a habilidade de extrair do mundo real os elementos (entidades, caractersticas, comportamentos, procedimentos) que realmente interessam para a aplicao desenvolvida.
Por exemplo, as informaes relevantes a respeito de um CD para uma aplicao
usada no gerenciamento de uma loja que vende CDs, so diferentes das de uma
aplicao para o gerenciamento de uma fbrica, que produz CDs.
Informtica 4
captulo 4
www.java.sun.com/docs/codeconv/) que define sua prpria conveno de nomenclatura, cuja utilizao ser destacada durante a elaborao dos cdigos fonte.
Tal como ocorre com os conceitos, deixar de us-la no gera erros de lgica, de
compilao ou de execuo. Seguiremos, entretanto, risca as recomendaes de
conceitos e convenes, para que sejam conhecidas em profundidade e tambm
em nome da implantao de boas prticas de programao.
4.4. Eclipse
A Eclipse Foundation
uma organizao
sem fins lucrativos que
hospeda osprojetos
Eclipsee ajuda a manter
tanto uma comunidade
de openSource (grupo
que desenvolve
softwares com cdigo
de fonte aberto)
como um conjunto de
produtos e servios
complementares. O
projeto Eclipse foi
originalmente criado
pela IBM em novembro
de 2001 e apoiado
por um consrcio
de fornecedores de
software. (Para mais
informaes
sobre o Eclipse, acesse:
htpp://www.eclipse.org).
IDE (Integrated Development Environment, ou ambiente integrado de desenvolvimento) um programa de computador que rene recursos e ferramentas
de apoio para agilizar o desenvolvimento de softwares. Aqui, trataremos da IDE
Eclipse Classic 3.5.0, comumente conhecida por Galileo (as verses mais recentes
ficam disponveis para download no site htpp://www.eclipse.org/downloads/.)
O Eclipse mantido pela Eclipse Foundation, que possui projetos que se concentram na criao de uma plataforma de desenvolvimento composta por quadros extensveis e ferramentas para construo, implantao e gerenciamento de
softwares em todo o seu ciclo de vida.
102
103
Informtica 4
captulo 4
As classes de modelagem podem ser comparadas a moldes ou formas que definem as caractersticas e os comportamentos dos objetos criados a partir delas.
Vale traar um paralelo com o projeto de um automvel. Os engenheiros definem as medidas, a quantidade de portas, a potncia do motor, a capacidade em
relao ao nmero de passageiros, a localizao do estepe, dentre outras descries necessrias para a fabricao de um veculo.
Durante a elaborao do projeto, bvio que o automvel ainda no existe. Porm, quando for fabricado, todas as especificaes previamente definidas no desenho tero de ser seguidas risca. Os diferentes modelos desse mesmo veculo tero
detalhes diferenciais, como cor da lataria, tipo das rodas, material do banco, acessrios etc. Nada, entretanto, que altere as caractersticas originais, como um todo.
Sero informaes acrescentadas aos elementos j definidos no projeto (atributos).
O funcionamento bsico do automvel tambm foi definido no projeto. O motorista poder acelerar, frear, trocar marchas, manobrar etc. Essas aes, assim
como a respectiva resposta do carro (mtodos), permitem uma outra analogia
com nosso assunto. O motorista (que seria no nosso caso o programador) no
precisa ter conhecimentos profundos sobre mecnica para, por exemplo, acelerar o automvel. Internamente, o veculo possui um complexo mecanismo que
aciona as partes responsveis pela injeo e pela combusto. Esta, por sua vez,
gera uma presso sobre outras engrenagens do motor, impulsionando as rodas e
fazendo o carro se deslocar processos tambm especificados no projeto. Para
o motorista, quando o objetivo velocidade, basta saber que preciso pisar
no pedal do acelerador e que quanto mais presso for feita mais rpido andar 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 assinatura 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
104
Informtica 4
captulo 4
Figura 64
Diagrama de classe
(UML) da
classe Pessoa.
Pessoa
Nome da classe
Pessoa
- nome : String
- endereco : String
- telefone : String
Atributos
+ Pessoa() : void
+ Pessoa(nome : String, endereco : String, telefone : String) : void
+ getNome() : String
+ setNome(nome : String) : void
+ getEndereco() : String
+ setEndereco(endereco : String) : void
+ getTelefone() : String
+ setTelefone(telefone : String) : void
+ inserirDadosPessoa() : void
+ apresentarPessoa() : void
- nome : String
- endereco : String
- telefone : String
Mtodos
+ Pessoa() : void
+ Pessoa(nome : String, endereco : String, telefone : String) : void
+ getNome() : String
+ setNome(nome : String) : void
+ getEndereco() : String
+ setEndereco(endereco : String) : void
+ getTelefone() : String
+ setTelefone(telefone : String) : void
+ inserirDadosPessoa() : void
+ apresentarPessoa() : void
Principal
Informtica 4
captulo 4
Figura 65
Codificao da
classe Pessoa.
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.
4.5.1.2. Objetos
A partir do momento em que a classe de modelagem est completa, possvel
criar um objeto e manipul-lo. Outra vez, surgiro termos novos, explicados mais
adiante. O importante, agora, perceber que essa a classe Principal (salva em um
arquivo separado da classe Pessoa). Nela est definido o mtodo main (principal),
dentro do qual esto as linhas de cdigo que criam e acessam o objeto.
Todo projeto Java possui, obrigatoriamente, um mtodo main. esse que
a JRE procura para ser executado primeiro. A partir dele, o restante do
108
109
Informtica 4
captulo 4
Classe
Comando
Objeto
Construtor
Objeto
Sada do mtodo
apresentarPessoa().
Mtodo
Figura 68
Codificao da
classe Principal.
110
4.5.2.1. Private
Os atributos e mtodos definidos por esse modificador somente so visveis (podem ser acessados) dentro da classe em que foram codificados. Por exemplo, o
atributo e-mail definido na classe Pessoa. Dentro dela (normalmente nos mtodos da classe) esse atributo pode ser manuseado (seu valor lido ou alterado).
111
Informtica 4
captulo 4
4.5.2.2. Public
Os atributos e mtodos definidos com o modificador public so visveis em qualquer lugar dentro da classe e podem ser acessados sem nenhuma restrio a
partir de um objeto instanciado.
4.5.2.3. Protected
Um terceiro tipo, o protected (protegido, em portugus), define que um atributo
ou mtodo pode ser visto dentro da prpria classe e em objetos instanciados a
partir de classes que pertenam ao mesmo pacote (package em ingls).
O uso de packages ser detalhado mais adiante.
aos valores dentro dos parnteses). Esses valores sero atribudos (armazenados)
na sequncia em que esto escritos (o primeiro parmetro no primeiro atributo,
o segundo parmetro no segundo atributo e o terceiro parmetro no terceiro
atributo). O mesmo acontece no mtodo this(), no qual os valores entre parnteses referem-se aos atributos na mesma sequncia.
Instanciar um objeto
alocar (reservar) um
espao em memria
(RAM - Random Access
Memory ou memria
de acesso randmico).
4.5.6. Encapsulamento
No exemplo da classe Pessoa, utilizamos mais um conceito da programao
orientada a objetos. Quando definimos que um atributo (ou mtodo) tem a
visibilidade privada (modificador de acesso private), limitamos o acesso somente sua classe. Podemos imaginar que, depois de instanciado o objeto,
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
atributo for alterado para um valor exorbitante, ocorrer a seguinte situao
no sistema: o cliente (do mundo real) ficar liberado para comprar at esse
valor exorbitante (tendo ou no condies para pagar). Normalmente, os empreendimentos comerciais definem limites de crdito para seus clientes, tomando por base a renda mensal de cada um, o tempo de cadastro, o histrico
de pagamentos etc. Enfim, h uma regra para que esse limite de crdito seja
calculado e/ou atualizado.
Agora, imagine outra situao. Determinada classe do sistema responsvel pelo processo de venda dessa mesma loja. Em algum momento, ser
necessrio verificar se a quantidade de estoque disponvel suficiente para
atender aos pedidos. Portanto, essa classe deve ter acesso ao atributo estoqueDisponvel do produto que est sendo vendido. Tal acesso necessrio e
autorizado pelo sistema. Porm, se o atributo estoqueDisponivel foi definido como privado, esse acesso no ser possvel. A soluo para o problema
definir mtodos de acesso para os atributos.
O mtodo get.
Se
t te
rs
nome
t
Ge
te
rs
endereco
telefone
apresentarPessoa()
115
Informtica 4
captulo 4
e funciona como uma pelcula protetora do objeto. Tem passagens padro que transferem informaes de fora para dentro (setters) e de dentro para fora (getters). Alm
disso, tm algumas passagens (mtodos) com finalidades especficas e que tambm
podem entrar e/ou sair com informaes. Esse trfego acontece de acordo com regras de entrada e sada de informaes definidas nas passagens (mtodos). Em nossos
exemplos, sempre sero utilizados getters e setters para acessar os atributos, garantindo
os benefcios do encapsulamento.
atributos
construtores
O import, na classe
JOptionPane.
Figura 75
O uso do caractere
especial *.
116
Informtica 4
captulo 4
Figura 78
Figura 76
Alterao no mtodo
apresentarPessoa.
Mtodo
showMessageDialog.
Figura 79
Apresentao
da mensagem em
uma nica janela.
118
119
Informtica 4
captulo 4
Figura 81
Informaes do
cabealho de
um mtodo.
Figura 82
Visibilidade
Passagem de parmetro
Classe Pessoa:
Retornar
um valor do
tipo String.
Retorno de valor
Nome do mtodo
Passagem de
parmetro.
Classe Pessoa:
Informtica 4
captulo 4
Figura 84
Mtodo main da
Classe Principal.
Figura 85
Classe Pessoa.
boolean
char
byte
short
int
Abrangncia
long
float
double
palavras reservadas
abstract
boolean
break
byte
case
catch
char
class
const
continue
default
do
double
else
extends
final
finally
float
for
goto
if
implements import
instanceof
int
interface
long
native
new
package
private
protected
public
return
short
static
strictfp
super
switch
synchronized this
throw
throws
transient
try
void
while
assert
122
volatile
123
Informtica 4
captulo 4
4.8.3. Operadores
Atribuies
Aritmticos
+
Adio
Atribuio
Subtrao
+=
Multiplicao
-=
Diviso
*=
Resto da diviso
/=
Relacionais
&=
Menor que
|=
>=
Maior ou igual a
^=
<=
Menor ou igual a
<<=
==
Igual
>>=
!=
Diferente
instanceof
Comparao de tipo
>>>=
>
Maior que
<
Lgicos
&&
E (and)
||
Ou (or)
Ternrio
No (not)
?:
Incremento
++
Bit a Bit
&
E (bitwise and)
Ou (bitwise or)
<<
>>
>>>
124
pr-incremento ou ps-incremento
Decremento
--
pr-decremento ou ps-decremento
Informtica 4
captulo 4
Figura 86
Converso
Declarao
de variveis.
De
4.8.5.1. Converso
A transformao de um dado de um tipo em outro realizada por mtodos
especficos, conforme o quadro Converso.
Exemplo: uma varivel do tipo String (figura 88).
Figura 88
float
Float.parseFloat()
String
double
Double.parseDouble()
String
Integer.toString() ou String.valueOf()
float
Integer.parseInt()
int
Figura 87
int
String
Declarao de
constantes.
Mtodos
String
Perceba que nos tipos float e double deve-se explicitar o formato. Caso isso no
seja feito, ocorrer uma promoo de tipo (visto a seguir). Constantes em Java
so declaradas pelo comando final, ilustrado na figura 87.
Para
String
Float.toString() ou String.valueOf()
double
String
Double.toString() ou String.valueOf
CAST
Tipos
byte
nenhuma
short
byte
char
byte e short
int
long
float
double
Cast vlidos
Figura 89
126
127
Informtica 4
captulo 4
4.8.6.1. If-else
A estrutura de if extremamente adaptvel, podendo assumir qualquer uma das
formas ilustradas nas figuras 93, 94 e 95.
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
float
double
long
float ou double
int
char
short
byte
boolean
nenhuma
Figura 95
128
129
Informtica 4
captulo 4
Figura 99
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 verdadeira, 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).
Figura 98
4.8.7.3. For
O bloco de cdigo contido no for ser repetido quantas vezes a condio na
abertura do looping determinar. No exemplo em seguida, a varivel ir de 0 a
9 (figura 101).
Switch case.
Figura 101
4.8.8.1. Unidimensional
Um array pode ser composto por uma nica dimenso (nica linha), conforme
mostra a figura 102.
131
Informtica 4
captulo 4
Figura 102
Vetor
unidimensional.
ndices
ndices
vetorInteiros
vetorInteiros
10
30
50
20
40
Figura 107
valores
nome
nome
valores
Exemplos:
A declarao pode ser feita de trs maneiras:
Em duas etapas (primeiro, definindo-se o tipo e, depois a dimenso, conforme
a figura 103).
Figura 103
133
Informtica 4
captulo 4
Figura 111
Vetor
bidimensional
irregular.
ndices
Figura 115
matrizInteiros
matrizInteiros
nome
12
47
85
36
62
25
32
67
74
41
23
nome
17
valores
valores
49
ndices
ndices
Exemplos:
A declarao pode ser feita de trs maneiras:
Em duas etapas (primeiro, definindo-se o tipo e, depois, a dimenso), como na
figura 112.
Figura 112
Quanto leitura (apresentao), h duas opes para faz-la:
Acessando explicitamente o ndice (posio) desejado (figura 117).
Figura 117
135
Informtica 4
captulo 4
Figura 118
uma List quando a ordem de insero ou a posio na coleo nos interessa. H alguns mtodos importantes, quando manipulamos Lists (confira o quadro Mtodos
da Interface List).
Vetor bidimensional
quadrado.
size ()
matrizDouble
matrizDouble
nomenome
10.0
20.0
30.0
40.0
50.0
60.0
70.0
80.0
90.0
valores
valores
contains (objeto)
ndices
iterator ()
ndices
get (ndice)
Figura 119
Descrio
clear ()
ndices
Um ArrayList pode ser entendido como um array dinmico: ele aumenta ou diminui sua dimenso medida em que utilizado. Alm disso, possvel armazenar
dados (e objetos) de diferentes tipos no mesmo ArrayList. A classe ArrayList filha
(subclasse) de List e, portanto, tem todos os mtodos pertencentes List. Veremos
mais sobre subclasses adiante, quando estudarmos o conceito de herana.
4.8.9. Collections
Para fechar essa introduo bsica sobre Collections, vamos ver, em seguida,
alguns mtodos muito teis na manipulao de ArrayList (observe o quadro
Mtodos da Collection ArrayList).
ndices
Descrio
sort (ArrayList)
shuffle (ArrayList)
reverse (ArrayList)
4.8.9.1. ArrayList
Antes de nos aprofundarmos nessa coleo, vamos primeiro conhecer melhor a
interface List. Como o prprio nome indica, ela cria e gerencia uma lista. Isso significa que a ordem de insero ser mantida. A interface List mantm seus elementos
indexados. Permite, portanto, que exista uma preocupao com o posicionamento
de cada elemento e que tal posio seja determinada pelo ndice. Devemos utilizar
136
137
Informtica 4
captulo 4
Exemplos:
A declarao pode ser feita sem a definio de tipo de dado a ser armazenado e,
com isso, qualquer tipo aceito (figura 120).
Figura 120
138
139
Informtica 4
captulo 4
Pessoa
Figura 128
- codigo : int
- nome : String
- endereco : String
- bairro : String
- cidade : String
- uf : String
- telefone : String
- celular : String
+ mostrarTelefones() : void
Figura 129
- limiteCredito : double
- rendaMensal : double
- rg : String
- cpf : String
+ inserirDadosCliente() : void
+ apresentarCliente() : void
Fornecedor
- cnpj : String
- ie : String
- contato : String
+ inserirDadosFornecedor() : void
+ apresentarFornecedor() : void
Funcionario
- salarioBase : double
- salarioFinal : double
+ inserirDadosFuncionario() : void
+ apresentarFuncionario() : void
Principal
4.9.1. Herana
A herana um conceito amplamente utilizado em linguagens orientadas a objetos. Alm de vantagens facilmente identificadas, como a reutilizao e organizao de cdigos, a herana tambm a base para outros conceitos, como a sobrescrita de mtodos, classes e mtodos abstratos e polimorfismo. Tais conceitos
so fundamentais para a modelagem de sistemas mais robustos.
Durante a anlise dos requisitos de um sistema (solicitaes que o sistema dever
atender), podemos destacar os atributos ou os mtodos comuns a um grupo de
classes e concentr-los em uma nica classe (processo conhecido como generalizao). Da mesma forma, possvel identificar o que pertinente somente a
determinada classe (conhecido como especificao). A primeira vantagem dessa
organizao evitar a duplicidade de cdigo (ter o mesmo trecho de cdigo em
lugares diferentes do sistema), o que traz maior agilidade e confiabilidade na
manuteno e expanso do sistema.
Chamamos de superclasses essas classes que concentram atributos e mtodos
comuns que podem ser reutilizados (herdados) e de subclasses aquelas que
reaproveitam (herdam) esses recursos. Observe as definies de clientes, fornecedores e funcionrios utilizados na livraria de acordo com o diagrama de
classes (figura 130).
140
Figura 130
Herana.
No modelo acima, a classe Pessoa foi definida como uma superclasse e as classes
Cliente, Fornecedor e Funcionario, como suas subclasses. Do ponto de vista da
funcionalidade, tudo o que foi definido na superclasse (atributos e mtodos) ser
herdado pelas suas subclasses. Ou seja, um objeto instanciado a partir da classe
Cliente possui 12 atributos. So eles: nome, endereo, bairro, cidade, UF, telefone
e celular declarados na superclasse Pessoa, alm de limiteCredito, rendaMensal,
RG e CPF na subclasse Cliente. H ainda trs mtodos, nos quais mostrar telefones
foi definido na classe Pessoa e inserir DadosCliente e apresentarCliente foram definidos na classe Cliente. Na utilizao desses atributos e mtodos para um objeto
do tipo Cliente, fica transparente o local onde cada um foi declarado ou definido.
Para estabelecer a herana em relao codificao, as superclasses continuam
com a mesma estrutura de uma classe comum (como vimos em exemplos anteriores). J as subclasses recebem as seguintes definies:
141
Informtica 4
captulo 4
Figura 131
- codigo : int
- descricao : String
- genero : String
- estoqueDisponivel : int
- precoCusto : double
- precoVenda : double
+ calcularPrecoVenda() : void
+ calcularPrecoVenda(cotacaoDolar : double) : void
+ calcularPrecoVenda(genero : String) : void
Livro
Dvd
Cd
- autor : String
- editora : String
- edicao : String
- artista : String
- gravadora : String
- paisOrigem : String
- diretor : String
- duracao : String
- censura : int
+ inserirDadosCd() : void
+ apresentarCd() : void
+ inserirDadosDvd() : void
+ apresentarDvd() : void
Principal
+ main(args[ ] : String) : void
Figura 133
Sobrecarga do mtodo
calcularPrecoVenda.
Informtica 4
captulo 4
Figura 134
O Java identificar o mtodo que deve ser executado de acordo com a chamada
realizada, como mostra o exemplo da figura 137.
Codificao dos
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.
Codificao do
mtodos na
classe Livro.
Figura 138
Sobrescrita
do mtodo
calcularSalarioFinal.
Pessoa
- codigo : int
- nome : String
- endereco : String
- bairro : String
- cidade : String
- uf : String
- tefone : String
- celular : String
+ mostrarTelefones() : void
A sobrecarga pode ser realizada na mesma classe ou em subclasses, e os conceitos de herana so aplicados na utilizao dos objetos. Em nosso exemplo,
um objeto do tipo Livro tem quatro mtodos calcularPrecoVenda(), j CD
e DVD tm trs.
Funcionario
- salarioBase : double
- salarioFinal : double
+ inserirDadosFuncionario() : void
+ calcularSalarioFinal(valorVendido : double) : void
Vendedor
Temporario
- gratificacao : double
- valorComissao : double
- comissionado : boolean
+ apresentarFuncionario() : void
+ calcularSalarioFinal(valorVendi
do : double) : void
+ apresentarFuncionario() : void
+ inserirDadosFuncionario() : void
+ apresentarFuncionario() : void
+ calcularSalarioFinal(valorVendido :
double) : void
Principal
+ main(args[ ] : String) : void
144
145
Informtica 4
captulo 4
Figura 142
Figura 139
Figura 143
Classes abstratas
Pessoa e Cliente e
mtodo abstrato
calcularLimiteCredito.
+ mostrarTelefones() : void
<<abstract>>
Cliente
- limiteCredito : double
+ calcularLimiteCredito() : double
Os objetos que representaro um gerente, um vendedor e um temporrio sero instanciados a partir das classes Gerente, Vendedor e Temporario. Nesse
momento (da criao dos objetos), o Java considera a estrutura de cada subclasse, a qual d origem ao objeto. Ento, um objeto do tipo Gerente considera
a codificao do mtodo calcularSalarioFinal da classe Gerente; um do tipo
Temporario leva em conta a codificao da classe Temporario, e um do tipo
Vendedor focaliza o mtodo herdado, mas todos so invocados exatamente da
mesma forma (figura 142).
A sobrescrita de mtodos tambm proporciona vantagens relacionadas ao gerenciamento polimrfico de objetos.
146
ClientePJ
ClientePF
- rg : String
- cpf : String
- rendaMensal : double
- cnpj : String
- ie : String
- faturamentoAnual : double
+ calcularLimiteCredito() : void
+ inserirDadosClientePF() : void
+ apresentarClientePF() : void
+ calcularLimiteCredito() : void
+ inserirDadosClientePJ() : void
+ apresentarClientePJ() : void
Principal
+ main(args[ ] : String) : void
147
Informtica 4
captulo 4
As classes Cliente e Pessoa, nesse contexto, servem somente para definir quais e
como sero os recursos (atributos e mtodos) comuns a ClientePF e ClientePJ.
Os objetos que representaro os clientes da livraria sero instanciados a partir
das classes ClientePF e ClientePJ e nunca de Cliente e muito menos de Pessoa.
Ao definir as classes Pessoa e Cliente como abstratas, evitamos que, por uma
eventual falha de desenvolvimento, objetos sejam instanciados a partir delas, o
que no faria sentido. Alm de classes, podemos tambm definir mtodos como
abstratos, os quais servem para definir e forar, uma padronizao nas subclasses
em relao existncia e assinatura de mtodos herdados.
Um mtodo abstrato no possui implementao (codificao). composto
somente pela assinatura, na qual so definidos seu nome, passagem de parmetros e retorno de valor. Na codificao de uma subclasse que estende de
uma superclasse que, por sua vez, possui um mtodo abstrato, o programador
obrigado a inserir, pelo menos, a assinatura desse mtodo, podendo ou no
implement-lo (codific-lo). Voltando ao exemplo dos clientes da livraria apresentado na figura 130, calcularLimiteCredito definido na classe Cliente um
mtodo abstrato. Dessa forma, nas classes ClientePF e ClientePJ, somos obrigados a inclu-lo. A declarao abstract define uma classe abstrata, conforme
se observa na figura 144.
<<interface>>
Usuario
+ validarLogin(login : String, senha : String) : boolean
<<abstract>>
Cliente
- limiteCredito : double
+ mostrarTelefones() : void
+ calcularLimiteCredito() : double
+ validarLogin(login : String, senha :
String) : void
<<abstract>>
Pessoa
- codigo : int
- nome : String
- endereco : String
- bairro : String
- cidade : String
- uf : String
- tefone : String
- celular : String
- login : String
- senha : String
- tipoUsuario : String
+ mostrarTelefones() : void
Fornecedor
- cnpj : String
- ie : String
- contato : String
+ mostrarTelefones() : void
<<abstract>>
Funcionario
- salarioBase : double
- salarioFinal : double
+ mostrarTelefones() : void
+ calcularSalarioFinal(valorVendido :
double) : void
+ validarLogin(login : String, senha : String)
: double
Figura 144
Cliente e Funcionario
A declarao abstract tambm usada para mtodos (figura 145).
Figura 145
4.9.5. Interfaces
Ainda no nvel da modelagem do sistema, as interfaces so tipos especiais
de classes que servem para definir padres de como determinados grupos de
classes podero ser usados, definindo assinaturas de mtodos pelas classes
que devero ser adotados obrigatoriamente pelas classes (e subclasses) que as
implementarem.
Uma interface composta somente por mtodos abstratos (no possui atributos
nem mtodos concretos) e pode ser vista como uma espcie de contrato, cujas
especificaes as classes que as assinam (implementam) se comprometem a seguir, ou seja, devem seguir os mtodos nela definidos. A figura 146 ilustra uma
implementao de interface.
148
Para utilizar o sistema da livraria, o usurio dever ser identificado por um login
e uma senha. Os funcionrios tero acesso ao sistema para utiliz-lo em suas
rotinas de trabalho, como cadastros e atualizaes de dados dos clientes, produtos, movimentao, entre outros recursos disponveis no sistema, cujo acesso tambm ser permitido aos clientes, para que possam visualizar promoes
especiais e tambm entrar em contato com a livraria, pelo seu site na internet.
Assim, tanto funcionrios como clientes devero ser devidamente identificados,
para ter acesso ao sistema, algo que ser realizado da mesma forma (recebendo
o login e a senha e retornando verdadeiro ou falso). Ento, pode-se concluir que
o ideal seria criar um mtodo de validao utilizado tanto por clientes como
por funcionrios. Mas para fazer isso nos deparamos com algumas dificuldades:
Figura 146
Implementao da
inteface Usuario
pelas classes Cliente
e Funcionario.
Informtica 4
captulo 4
necessidade. Por exemplo, para calcular os impostos a serem pagos pela livraria,
devemos considerar que existem aqueles que incidem sobre os funcionrios e os
que incidem sobre os produtos comercializados. Nesse caso, podemos criar uma
interface chamada Custos que defina um mtodo calcularImpostos, o qual dever ser implementado na classe Funcionario e na classe Produto. Veja o exemplo da classe Funcionario na figura 152.
Figura 147
Figura 152
4.9.6. Polimorfismo
O polimorfismo a possibilidade de utilizar um objeto como se fosse um outro. Embora o conceito seja esse, algumas publicaes relacionadas ao Java e
orientao de objetos fazem abordagens diferentes. Ento, podemos considerar
basicamente trs tipos de polimorfismo: o de mtodos, o de classe, o de interface.
Figura 148
4.9.6.1. De mtodos
Figura 149
Outra importante caracterstica das interfaces que uma mesma classe pode
implementar vrias delas. Como no existe herana mltipla em Java (uma
subclasse ter mais de uma superclasse), o uso de interface supre essa eventual
150
4.9.6.2. De classe
Considerando uma hierarquia de classes, temos, em uma superclasse, a generalizao 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:
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
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 forma, 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.
O raciocnio o seguinte: Um vendedor um funcionrio, assim como, Um
livro um produto. A diferena que vendedor foi definido a partir de uma
151
Informtica 4
captulo 4
especializao da classe Funcionario. Assim, pode ter atributos e mtodos especficos referentes a vendedores, porm, no deixa de ser um Funcionario.
Apesar de um livro poder ser utilizado como se fosse um Produto, no deixa
de ser um livro e de ter as caractersticas especficas de livro. O polimorfismo, portanto, a possibilidade de utilizar um objeto como se fosse outro e no
transform-lo em outro. O uso do polimorfismo de classe (ou de tipo) exemplificado na figura 153, que ilustra o processo de venda da livraria.
Na classe Movimentacao, h um atributo do tipo Cliente, ou seja, nele podemos armazenar um objeto instanciado a partir das classes ClientePF ou ClientePJ. Na classe ItemMovimentacao, temos um atributo do tipo Produto, o que
significa poder armazenar nesse atributo um objeto categorizado a partir das
classes Livro, CD ou DVD.
<<interface>>
EntidadeMovimentacao
<<abstract>>
Cliente
- limiteCredito : double
+ mostrarTelefones() : void
+ calcularLimiteCredito() : double
+ validarLogin(login : String, senha :
String) : void
Figura 153
Polimorfismo
de classe.
Venda
- nota : Movimentacao
+ vender() : void
+ finalizarNF(nota : Movimentacao) : void
Movimentacao
- nf : int
- cli : Cliente
- data : Date
- itens[ ] : itemMovimentacao
- status : boolean
<<abstract>>
Pessoa
- codigo : int
- nome : String
- endereco : String
- bairro : String
- cidade : String
- uf : String
- tefone : String
- celular : String
- login : String
- senha : String
- tipoUsuario : String
+ mostrarTelefones() : void
Figura 154
Implementao
da inteface
EntidadeMovimentacao.
Fornecedor
- cnpj : Spring
- ie : Spring
- contato : Spring
+ mostrarTelefones() : void
<<abstract>>
Funcionario
- salarioBase : double
- salarioFinal : double
+ mostrarTelefones() : void
+ calcularSalarioFinal(valorVendido : double) : void
+ validarLogin(login : String, senha : String) : double
Figura 155
Principal
+ main(args[ ] : String) : void
Venda
ItemMovimentacao
- produto : Produto
- qtde : int
- totalItem : double
+ vender() : void
+ finalizarNF(nota : Movimentacao) : void
Polimorfismo de
classe e de interface.
+ totalizarItemVenda() : void
4.9.6.3. De interface
Tanto uma superclasse como uma interface podem ser interpretadas como um
superTipo. Ou seja, possvel referenciar um objeto pela interface que sua
classe de origem implementa. Voltemos ao exemplo da movimentao da livraria. Para definir quais classes podem ser utilizadas na movimentao de mercadorias, criamos a interface EntidadeMovimentacao e a implementamos nas
classes Cliente e Fornecedor (figura 154).
A movimentao, considerando compra e venda, ficar como aparece na figura 155.
Temos uma nica classe Movimentacao responsvel pelos dados do corpo da
compra e da venda. Para armazenar o cliente (no caso de venda) ou o fornecedor
(no caso de compra), h o atributo destinatrio, do tipo EntidadeMovimentacao, interface que as duas classes implementam.
152
ItemMovimentacao
Principal
+ main(args[ ] : String) : void
- produto : Produto
- qtde : int
- totalItem : double
+ totalizarItemCompra() : void
+ totalizarItemVenda() : void
Movimentacao
- nf : int
- data : Date
- destinatario : EntidadeMovimentacao
- itens[ ] : ItemMovimentacao
- status : boolean
- tipo : String
+ adicionarItem(item : ItemMovimentacao) : void
Compra
+ comprar() : void
+ finalizarNF(nota : Movimentacao) : void
153
Informtica 4
captulo 4
A camada de
apresentao
determina como
o usurio interage
com a aplicao e
como as informaes
so captadas e
apresentadas. A de
negcio tambm
chamada de
Lgica empresarial,
Regras de negcio
ou Funcionalidade.
nela que ficam
armazenadas as
codificaes do
funcionamento de
todo o negcio. A
de dados gerencia a
conexo com todas
as fontes de dados
usadas pelo aplicativo
(normalmente, um
banco de dados) e
o abastecimento de
dados dessas
fontes para a lgica
de negcio.
154
4.10.3. Packages
No decorrer do desenvolvimento de um software, muitas classes so criadas e,
logo, nos deparamos com a necessidade de organiz-las. Os packages servem
para agrupar as classes, normalmente por funcionalidades comuns. Alm das
vantagens vistas anteriormente, as classes so ordenadas de maneira lgica e
fsica, pois, para cada package, criado um diretrio em disco para salvamento.
Como exemplo no projeto Livraria, todas as classes esto contidas no default
package, como se observa na figura 156.
Figura 156
Classes contidas no
default package.
Informtica 4
captulo 4
Figura 158
Classes organizadas em
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.
157
Informtica 4
captulo 4
A classe FormValidacaoUsuario instanciada e exibida a partir da classe Principal, reproduzida na figura 161.
Figura 161
Classe Principal.
158
159
Informtica 4
captulo 4
Como implementar
o WindowListener.
Para que o WindowListener funcione, necessrio adicionar o Frame a ele (pelo mtodo addWindowListener(this), visto na linha 86), assim como implementar os sete
mtodos (abstratos) pertencentes ao WindowListener (linhas 90 a 110), mesmo que
s utilizando um deles (windowClosing) para fechar o formulrio (linhas 108 a 110).
Vamos ver como o funcionamento do ActionListener, aproveitando a oportunidade para entender como fazer a interao entre um objeto (originado de uma
classe de modelagem, como foi possvel observar nos exemplos anteriores) e o
formulrio, que agora exerce a tarefa de se comunicar com o usurio (camada
view). O objeto em questo do tipo ClientePF e possui, entre outros atributos,
um login e uma senha. Esse objeto tambm conta com um mtodo chamado
validarLogin, que recebe duas Strings por parmetro (login e senha) e as compara
com seus atributos (login e senha). Se forem iguais, apresentar uma mensagem
Cliente autorizado!, caso contrrio, mostrar Login desconhecido!. Em seguida, confira a codificao do mtodo validarLogin da classe ClientePF (figura 165).
Figura 165
Codificao
do mtodo
validarLogin da
classe ClientePF.
161
Informtica 4
captulo 4
Figura 166
Importando o
pacote model.
4.11.3. Swing
Para fazer a interao do objeto clientePF com a tela de login, instanciamos
o objeto na classe FormValidacaoUsuario, inicializando o login com a palavra
aluno e a senha com 123, pelo construtor. Mais uma vez, respeitando a organizao de packages. Para ter acesso classe ClientePF, necessrio importar
o pacote model (linha 14), conforme ilustra a figura 166.
O prximo passo adicionar os botes ao ActionListener, pelo mtodo
addActionListener(this), para que eles passem a ser monitorados pelo ActionListener (figura 167).
Figura 167
Adicionando botes ao
ActionListener.
A classe
FormValidacaoUsuario
utilizando o swing.
Figura 168
Implementando o
actionPermormed.
162
163
Informtica 4
captulo 4
Linha 44: a incluso de um componente na interface ActionListener (deixando preparado para receber um evento), assim como
a utilizao de AWT, realizada pelo mtodo addActionListener.
Porm, com a Swing criado uma ActionListener (linha 45) dentro do mtodo addActionListener e definido seu mtodo actionPerformed (linha 46). Com o uso do AWT, tnhamos um nico
mtodo actionPerformed e, nele, identificvamos o componente
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.
Em relao s instrues definidas no evento, vale observar o que vem mais
adiante.
Linha 48: para leitura da senha foi utilizado um componente do
tipo JPasswordField, que substitui a senha digitada por outros caracteres (asteriscos ou bolinhas, por exemplo). Para recuperar a senha,
necessrio converter esses caracteres para String, permitindo que
sejam utilizados.
Utilizando a API Swing, o gerenciamento da janela ficou a cargo do componente do tipo Conteiner, que receber e organizar todos os componentes.
Linha 26: define o ttulo da janela pelo construtor da superclasse
(acessado pelo mtodo super()).
Linha 27: cria um componente nomeado como tela do tipo Conteiner.
Linha 28: define que no ser utilizado um gerenciador de layout.
Figura 172
Codificao do mtodo
validarLogin j modificado.
O mtodo setBounds() responsvel por definir o tamanho e a localizao do componente pelos parmetros que recebe, na seguinte sequncia: coluna, linha, largura e
altura. Na figura 171, observe o trecho que define os eventos.
Figura 171
Trecho que
define os eventos.
165
Informtica 4
captulo 4
Error
Exception
RuntimeException
IOException
AWTError
ThreadDeath
OutOfMemoryError
ClassCastException
InputMismatchException
NullPointerException
ArithmeticException
Figura 173
Parte da hierarquia
da classe Throwable.
4.12.1. Error
A Error, com suas subclasses, utilizada para indicar erros graves que no se
esperam que sejam tratados pelo programas. Errors raramente acontecem e no
so de responsabilidade da aplicao. Exemplos de Errors so os internos da
JVM e a falta de memria.
4.12.2. Exception
Os erros em Java so, normalmente, chamados de exceptions. Uma exceo,
como sugere o significado da palavra, uma situao que normalmente no
ocorre (ou no deveria ocorrer), algo estranho ou inesperado provocado no sistema. O Java distingue duas categorias de excees: Unchecked (no verificadas)
e Checked (verificadas).
166
4.12.2.3. Throws
O Throws delega, para o local onde o mtodo foi solicitado, a responsabilidade
de tratar o erro. Isso quer dizer que a obrigatoriedade de tratamento passada
para a classe que far a chamada ao mtodo.
4.12.2.4. Try-catch-finally
a principal estrutura para captura de erros em Java. O cdigo tentar (try)
executar o bloco de cdigo que pode gerar uma exceo e, caso isso ocorra, o
erro gerado ser capturado pelo catch, que possui um parmetro de exceo
(identificao do erro) seguido por um bloco de cdigo que o captura e, assim,
permite o tratamento. possvel definir vrios catch para cada try. O finally
opcional e, se for usado, colocado depois do ltimo catch. Havendo ou no
uma exceo (identificada no bloco try) o bloco finally sempre ser executado.
Para exemplificar a utilizao dos recursos de tratamento de excees utilizaremos o exemplo de validao de login vistos nos subcaptulos anteriores.
Consideremos que na classe ClientePF o atributo senha do tipo int e, portanto, para armazenar um valor nele preciso convert-lo, j que os componentes
textField interpretam qualquer valor lido como String. Observe, na figura 174,
a codificao do mtodo validarLogin na classe ClientePF.
Figura 174
Codificao
do mtodo
validarLogin na
classe ClientePF.
167
Informtica 4
captulo 4
Figura 175
Evento do
componente
bOk na classe
FormValidacaoUsuario.
Na linha 50, a senha obtida por meio do componente tpSenha do tipo JPasswordField precisa ser convertida para int antes de ser passada por parmetro
na chamada do mtodo validarLogin (linha 56). Se for digitada uma letra no
campo senha, a converso para int (linha 50) gerar uma exception do tipo
NumberFormatException. Perceba que o compilador no nos obriga a tratar
esse erro. Portanto, estamos diante de um Unchecked Exception (outra forma
de identificar o tipo da exceo considerar que NumberFormatException
subclasse de RuntimeException). A insero da estrutura de try-catch-finally
pode tratar essa possvel exceo da forma como ilustra a figura 176.
Figura 176
Validao com
try-catch-finally.
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, consideremos 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,
estando nessa faixa de valores o compilador no gerar uma exceo. Mas para a minha aplicao, um valor informado fora da faixa entre 0 e 1000 uma exceo. Para
esses casos, podemos utilizar a clusula throw (no confundir com throws, que tem
outro sentido, estudado mais adiante), que realiza uma chamada a uma exceo (fora
uma exceo). Vejamos, na figura 177, como ficar a validao com o uso do throw.
Na linha 58, verificado se a senha informada est fora da faixa de valores prevista. Se estiver, a exception IllegalArgumentException invocada e capturada
pelo catch da linha 71, onde uma mensagem ser exibida.
Para fechar nossos exemplos de tratamentos de exceo, vamos analisar o comportamento do Java (e os recursos do eclipse) em relao a Checked Exceptions
Figura 177
Validao com
uso do throw.
168
169
Informtica 4
captulo 4
Figura 178
Figura 182
Observao de erro de
uma checked exception.
Uso do throws
na classe
FormValidacaoUsuario.
Figura 179
Opes de tratamento.
Figura 181
Uso do throws na
classe ClientePF.
170
171
Informtica 4
captulo 4
Por definio, um banco de dados um conjunto de informaes armazenadas em um meio fsico (papel, disco rgido etc.), organizadas de tal forma
que seja possvel fazer sua manuteno (incluso, alterao e excluso) e
diferentes formas de pesquisas. Considerando os bancos de dados informatizados, os SGBDs (Sistemas Gerenciadores de Bancos de Dados) possuem
recursos para manuteno, acesso, controle de usurios, segurana, e outras ferramentas de gerenciamento. O SQL (Structured Query Language,
oulinguagem de consulta estruturada) uma linguagem de manipulao
de dados que se tornou padro para SGBDRs (Sistemas Gerenciadores de
Bancos de Dados Relacionais). Entre os sistemas de gerenciamento de SGBDRs populares esto: o Microsoft SQL Server, o Oracle, o IBM DB2, o
PostgreSQL e o MySQL.
Importante:
Tipo 2: Native API partly Java driver (API nativa parcialmente Java)
Os drivers JDBC do Tipo 2 permitem a comunicao de aplicaes Java
com os drivers nativos dos SGBDs (geralmente desenvolvidos em C ou
C++). Nesse sentido, so semelhantes aos do tipo 1, porm, criam uma ponte entre os drivers nativos de cada SGBD com as aplicaes Java. Sua vantagem ter um desempenho melhor que o driver de Tipo 1. J a desvantagem
que o driver nativo especfico do SGBD utilizado deve estar instalado na
mquina cliente, o que impossibilita aplicaes web, pois necessrio ter
acesso s mquinas clientes.
173
Informtica 4
captulo 4
Figura 183
Tipo 3: Net protocol all Java driver (Protocolo de rede totalmente Java)
Formulrio de
manuteno de clientes
pessoa fsica.
Tipo 4: Native protocol all Java driver (Protocolo nativo totalmente Java)
O driver do Tipo 4 inteiramente desenvolvido em Java e converte as requisies 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 direta com o SGBD, a aplicao fica independente de plataforma e de instalaes
na mquina cliente; e tambm um drive ideal para aplicaes web. A desvantagem que cada SGBD tem seu prprio driver e nem todos so gratuitos.
Figura 184
Nos exemplos a seguir, o driver usado o com.mysql.jdbc.Driver (mysql-connector-java-5.1.6-bin), do tipo 4. Os prprios fabricantes dos SGBDs fornecem
seus drivers JDBC. Existem muitos fornecedores independentes que desenvolvem e disponibilizam drivers JDBC de vrios SGBDs.
175
Informtica 4
captulo 4
Figura 187
Mtodo incluir na
classe ClientePF.
4.13.3. Incluso
Na Classe FormClientePF, os objetos clientePF e clientePFAuxiliar (previamente instanciados) so do tipo ClientePF e possuem os atributos referentes aos dados lidos pelo formulrio, para a incluso. Os atributos do objeto
clientePFAuxiliar so preenchidos com os valores lidos do formulrio como
se observa nas linhas 289 a 302, ilustrada na figura 186.
Com os dados j armazenados em seus atributos, o objeto clientePFAuxiliar passado por parmetro para o mtodo incluir do objeto clientePF
(na linha 304).
Figura 186
Mtodo
acaoInclusao
na classe
FormClientePF.
176
Informtica 4
captulo 4
Figura 189
Mtodo alterar
na classe ClientePF.
4.13.4. Alterao
Na classe FormClientePF, para a alterao, os atributos do objeto clientePFAuxiliar so preenchidos com os dados do formulrio (linhas 309 a
323), como se observa na sequncia ilustrada na figura 188.
E com os dados j armazenados em seus atributos, o objeto clientePFAuxiliar passado por parmetro para o mtodo alterar do objeto clientePF
(na linha 325).
Figura 188:
Mtodo
acaoAlteracao
na classe
FormClientePF.
4.13.5. Excluso
Na classe FormClientePF necessrio obter somente o cdigo do cliente a
ser excludo. Tal cdigo armazenado no objeto clientePFAuxiliar, que
passado por parmetro para o mtodo excluir do objeto clientePF, como se
pode visualizar na figura 190.
Figura 190
Mtodo acaoExclusao
na classe FormClientePF.
Informtica 4
captulo 4
Figura 191
Figura 193
Mtodo excluir
na classe ClientePF.
Mtodo listar na
classe ClientePF.
As instrues de conexo e preparao do comando SQL so as mesmas utilizadas e descritas no mtodo incluir. A diferena que agora o comando SQL
executado o delete, que remover o registro do banco cujo campo cliCod seja
igual ao contedo do atributo cdigo do objeto clientePF. Esse critrio foi definido por meio da clusula where do comando delete.
4.13.7. Pesquisa
Uma pesquisa pode ser realizada de formas diferentes. O que apresentamos,
ento, simplesmente um exemplo. Na classe FormClientePF, utilizaremos
mais um objeto do ClientePF como auxiliar na pesquisa, criado na linha
340 com o nome de clientePFPesquisa. O objeto clientePF instanciado
novamente dentro do mtodo somente para garantir que estar vazio. A
manipulao desses dois objetos ilustrada na figura 194.
181
Informtica 4
captulo 4
Figura 194
Figura 195
Mtodo acaoPesquisar na
classe FormClientePF.
Mtodo pesquisar
na classe ClientePF.
Captulo 5
Informtica 4
captulo 5
Figura 196
.NET Framework.
AJAX (acrnimo
para a expresso em
ingls Asynchronous
Javascript And XML, que
literalmente pode ser
traduzido para Javascript
e XML Assncrono) o
nome dado utilizao
metodolgica de
Javascript e XML para
fazer com que as pginas
web se tornem mais
interativas.
Visual Studio um conjunto de ferramentas de desenvolvimento que contm editores de cdigos, IntelliSense, assistentes e diferentes
linguagens em um mesmo ambiente de desenvolvimento integrado para principiantes e profissionais. Apresenta-se em diferentes plataformas: PCs, servidores, aplicaes web e mveis. Em uma viso mais abrangente, o Visual Studio
permite o desenvolvimento rpido de aplicativos, recursos de depurao e banco
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
Desenvolvido pela Microsoft, o .NET Framework um modelo de programao de cdigo gerenciado para criar aplicativos cliente, servidores ou dispositivos mveis. formado por um conjunto variado de bibliotecas que facilitam o
desenvolvimento de aplicaes, desde as mais simples at as mais complexas,
bem como a instalao e distribuio de aplicaes. Baseado em tecnologia de
mquina virtual, o .NET Framework totalmente orientado a objetos.
O .NET Framework 3.5 incrementa as verses anteriores com novas implementaes ASP.NET e AJAX e aumenta a integrao com o LINQ (Language
Integrated Query, ou consulta integrada de linguagem) que uma nova ferramenta de pesquisas em base de dados, alm de suporte total para Windows
Workflow Foundation (WF), Windows Communication Foundation (WCF),
Windows Presentation Foundation (WPF) e Windows CardSpace. Sua estrutura composta por diferentes camadas, como podemos visualizar na figura 196.
Na camada inferior, encontramos a Common Language Runtime (CLR) ou
tempo de execuo de linguagem comum. Sua finalidade executar as aplicaes, criando um ambiente de mquina virtual e compilando as linguagens de
programao do .NET Framework em cdigo nativo. O .NET Frameworks
Base Class, na segunda camada de baixo para cima, representa as bibliotecas de
classes disponveis para o desenvolvimento de aplicativos (consulte o quadro Recursos de classes disponveis na pgina 188). o principal ponto de interatividade
com o Runtime (tempo de execuo).
Na terceira camada ascendente, est o ADO.NET (Data e XML). O ActiveX
Data Objects (ADO) oferece todos os recursos necessrios para a criao e manipulao de bancos de dados fornecidos por meio das classes System.Data,
.Common, .OleDb, .SqlClients, SqlTypes, .Odbc e .Xml.
Na quarta camada temos Web Services e Web Forms. O Web Service representa
a integrao entre os dados de diferentes aplicaes e plataformas, permitindo o
envio e recepo de dados no formato XML. Tudo de maneira muito fcil. Para
que isso ocorra, entra em cena o Web Forms, criando um ambiente de desenvolvimento semelhante s ferramentas que normalmente utilizamos, clicando e
arrastando, assim como se faz no FrontPage da Microsoft. J o Windows Form
uma evoluo dos formulrios utilizados para programao.
Localizado na penltima camada de baixo para cima, o Common Type System (CTS), que pode ser literalmente traduzido como sistema de tipo comum,
existe para que ocorra a integrao entre as linguagens de programao. Define como os tipos de dados sero declarados, usados e gerenciados no momento
da execuo do aplicativo.
No topo, aparecem as linguagens de programao utilizadas para o desenvolvimento da aplicao, como VB, C++, C# e JScript. Assim, pode-se concluir que o conjunto de todas as camadas mencionadas representa o pacote do Visual Studio.Net.
Informtica 4
captulo 5
Figura 197
O Visual Studio.
Janela de Projeto.
188
Informtica 4
captulo 5
Figura 199
Figura 202
Definio da Solution.
ToolBox.
gramao do formulrio; Form1.Designer.cs, para programao visual do formulrio; e Program.cs, o programa principal, no qual encontramos o mtodo
main(), que dar incio aplicao.
Para aplicaes em Visual Basic, ser disponibilizado o arquivo Form1.vb, que possui
a mesma funo do Form1.cs. Confira, a seguir, janelas disponveis e suas funes:
ToolBox (caixa de ferramentas): contm componentes para o desenvolvimento
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
Common Controls (controles comuns).
Toolbar.
Solution Explorer: mostra os arquivos que fazem parte do seu projeto. semelhante ao Explorer do Windows, pois permite criar, excluir e importar arquivos
(figura 201).
Se analisarmos uma aplicao Windows Form Application em C#, dentro da
janela Solution, podemos encontrar os seguintes arquivos: Form1.cs, para proFigura 201
Solution Explorer.
Form (formulrio): essa janela (figura 203) receber os componentes da toolbox e a programao correspondente. Os componentes sero arrastados sobre
o Form para compor a interface do usurio e tero suas propriedades modificadas de acordo com o projeto. Para ativar a janela de cdigo e realizar a programao, preciso dar um duplo clique sobre o componente ou formulrio.
Properties (propriedades): permite alterar as propriedades dos componentes, que
podem aparecer organizadas por categoria ou em ordem alfabtica (figura 204).
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 203
Form.
190
191
Informtica 4
captulo 5
Figura 207
Figura 204
Auto Hide.
Properties.
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 notao de ponto, conforme o seguinte cdigo, que oculta o Label:
Label1.Visible = false;
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
vezes sobre ela ou em qualquer componente. Outra opo usar os botes Code (cdigo) e View (visualizar) na janela de Solution Explorer, como mostra a figura 206.
Figura 205
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
que ela seja aberta. Para fix-la, utilize o cone semelhante a um preguinho
(figura 208), localizado na barra de ttulo.
Podemos movimentar as janelas e coloc-las em qualquer lugar da aplicao com a
ajuda dos guias. Para isso, clique na barra de ttulo e mantenha o boto do mouse
pressionado, arrastando a janela para qualquer rea de seu desktop. Imediatamente, surgiro as indicaes das guias (figura 209). Escolha uma delas e solte a janela.
Figura 209
Guias de janelas.
Figura 206
Em destaque, os botes
Code e View.
Cada componente recebe uma numerao automtica quando inserido no projeto (Label1, Label2, Label3 etc.). No h problemas em manter esses nomes,
mas, para deixar o cdigo mais legvel e padronizado, o melhor utilizar um
prefixo relacionado ao tipo de componente e sua identificao. Por exemplo:
Label1 = lblPergunta
Floating: a janela fica flutuante, podendo ser deslocada para qualquer parte
do desktop.
192
Label2 = lblMensagemAlerta
193
Informtica 4
captulo 5
Durante essa atividade, podemos recorrer a alguns botes auxiliares (figura 212)
como Break, Stop e Restart.
Componente
Prefixo
Componente
Prefixo
Label
lbl
ListBox
Lst
TextBox
txt
DataList
Dtl
O Visual Studio nos ajuda a identificar ou interpretar alguns erros que podem ocorrer durante o processo de criao ou execuo do cdigo. Confira
alguns, a seguir.
DataGrid
dtg
Repeater
Rep
Button
btn
Checkbox
Chk
ImageButton
imb
CheckBoxList
Cbl
DropDownList
ddl
RadioButton
Rdo
RadioButtonList
rbl
PlaceHolder
PhD
Image
img
Table
Tbl
Panel
pnl
Validators
Val
5.2.5. IntelliSense
Ao digitar alguma instruo, aparecer uma srie de complementos relacionados
a ela. Quando escrevemos Console, por exemplo, so disponibilizados vrios
mtodos. Com a ajuda da tecla Tab ou da Barra de Espao, a instruo se compe naturalmente (figura 210).
Figura 210
IntelliSense.
Erro de sintaxe: geralmente identificado com uma linha em vermelho sublinhando a expresso. No exemplo mostrado na figura 213, esto faltando as
aspas no fechamento da expresso.
Figura 213
Erro de sintaxe.
Erro antes da execuo: quando o cdigo apresenta algum erro e uma execuo forada, uma caixa de dilogo solicita ao usurio que continue a execuo
do cdigo, mesmo constando erro (figura 214). Isso faz com que a ltima verso
correta seja executada, ignorando a atual.
Figura 214
Janela de erro.
Instruo
Opes de
complemento
Figura 212
Controles de execuo.
Clique sobre o erro identificado (1, 2 etc.) para que ele seja selecionado no cdigo para visualizao.
Erro de classe ou mtodo: comumente identificado com uma linha em azul
sublinhando a expresso (figura 216). No exemplo, a instruo est escrita de
forma errada, pois o correto WriteLine().
Figura 216
Erro de classe.
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.
O engenheiro de software
Anders Heijsberg nasceu
na Dinamarca, na cidade
de Copenhagem, em 1960.
Um importante marco em
sua carreira foi ter escrito
os compiladores Pascal
e Blue Label, quando
trabalhava na Nascon
Computer. Foi, porm,
mais tarde, para a Borland
que desenvolveu o Turbo
Pascal e o Delphi, antes
de ser contratado pela
Microsoft, em 1996. Criou
a linguagem J++ e a C#,
em cujo desenvolvimento
trabalha continuamente.
onsiderada como a mais importante linguagem de desenvolvimento da Microsoft dentro da Plataforma .NET Framework, a C#
vem ganhando inmeros adeptos (programadores de outras linguagens) em virtude de sua caracterstica e semelhana ao C, C++ ou Java. A
linguagem de programao C# orientada a objetos e foi criada praticamente
a partir do zero para compor a plataforma. Trata-se do primeiro compilador
com suporte de programao para a maioria das classes do .NET Frameworks.
Embora tenha sido feita por vrios programadores, os mritos so atribudos
principalmente a Anders Hejlsberg, muito conhecido por desenvolvedores do
compilador Delphi.
6.1. Programao
O C# requer toda a lgica de programao contida em classes. Neste captulo,
no sero abordados, em detalhes, os conceitos de programao orientada a objetos. Caso haja dvidas consulte o captulo 4.
199
Informtica 4
captulo 6
Figura 219
tipo
Form1.Designer.cs.
Byte
Sbyte
Ushort
Short
Uint
Int
Ulong
Long
Double
Float
Decimal
Bool
Char
Implementao
Inteiro de 8 bits sem sinal (0 a 255).
Inteiro de 8 bits com sinal (-127 a 128).
Inteiro de 16 bits sem sinal (0 a 65 535).
Inteiro de 16 bits com sinal (-32 768 a 32 767).
Inteiro de 32 bits sem sinal (0 a 4 294 967 295).
Inteiro de 32 bits com sinal (-2 147 483 648 a 2 147 483 647).
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 a 9 223 372 036 854 775 807).
Ponto flutuante binrio IEEE de 8 bytes (5.0 _ 10-324 a 1.7 _ 10308),
15 dgitos decimais de preciso.
Ponto flutuante binrio IEEE de 4 bytes (1.5 _ 10-45 a 3.4 _ 1038),
7 dgitos decimais de preciso.
Ponto flutuante decimal de 128 bits. (1.0 _ 10-28 a 7.9 _ 1028),
28 dgitos decimais de preciso.
Pode ter os valores true e false. No compatvel com inteiro.
Um nico caractere Unicode de 16 bits. No compatvel com inteiro.
Tabela 13
Distribuio dos
tipos de dados.
Figura 220
Form1.cs.
int num;
int x, y, x;
float salario;
string nome;
string edereco, cidade, estado;
char resp;
Figura 221
Declaraes corretas
das variveis.
Ateno:
No momento da
programao,
fundamental ficar alerta
para ver onde o cdigo
ser inserido. Portanto,
identifique corretamente
o componente e o evento
que ser agregado. As
instrues bsicas de
programao sero
apresentadas, aqui,
utilizando-se o mtodo
Console Application, pois
a sua estrutura a
mesma para aplicaes
grficas do Windows
Form Application.
Informtica 4
captulo 6
Heap: Aqui, ficam os valores referentes aos objetos. Isso ocorre quando uma
classe estabelecida usando o new (construtores). Caso as funes sejam encerradas ou ocorra um exception, a limpeza no acontece automaticamente e sim
por meio do Garbage Colletor.
6.3. Operadores
Exemplos prticos para mostrar a funcionalidade dos operadores so executados
no Console Application, como j foi mencionado.
aritmticos
+ Adio
-
Subtrao
* Multiplicao
/
Diviso
%
Resto da diviso
+= Adio Igual
-=
Subtrao Igual
*= Multiplicao Igual
/=
Diviso Igual
%=
Resto da diviso Igual
Figura 222
Usando o
mtodo Readkey.
Figura 223
Aplicao de
operadores aritmticos
de atribuio reduzida.
++
- -
Incremento
Decremento
Figura 224
Aplicao de operadores de
incremento e decremento.
203
Informtica 4
captulo 6
&& And
|| Or
! Not
6.3.6. Converses C#
Para realizar as converses de dados, usamos os mesmos conceitos trabalhados
em Java. No entanto, dependendo da instruo adotada, o resultado obtido
poder variar. Um bom programador realiza alguns testes para verificar qual a
melhor maneira de fazer a converso.
6.3.7. Parse
A classe Parse sempre vem precedida do tipo de dados e em seguida da varivel
ou da expresso a ser convertida (figura 226).
Figura 226
Classe Parse.
int.Parse(idade);
float.Parse(salario);
int.Parse(Console.ReadLine());
valor = Int32.Parse(numero);
teste = Int16.Parse(dado);
Convert.ToUInt16(indade);
Convert.ToDouble(salario);
Convert.ToInt16(Console.ReadLine());
valor = Convert.ToInt32(numero);
teste = Convert.ToInt16(dado);
dt = Convert.ToDateTime(01/01/2010);
Classe Convert.
Dica
Figura 228
Exemplo de instruo if().
Console.WriteLine(Estrutura IF);
int x = 15;
if (x > 10) {
Console.ReadKey();
dt = DateTime.Parse(01/01/2010);
6.3.8. Convert
A classe Convert tem a sua indicao de tipo registrada aps o nome da classe,
seguido da varivel ou da expresso (figura 227).
204
Figura 227
Informtica 4
captulo 6
Figura 229
Exemplo de if...else.
{
}
Figura 231
Exemplo de mltiplos
testes Switch().
Exemplo de While.
6.5.2. Do While()
Nesse caso, repete-se a instruo para While(). Porm, o teste realizado no
final do loop. Esse tipo de estrutura permite que as instrues que esto dentro
do lao de repetio sejam executadas, no mnimo, uma vez (figura 233).
207
Informtica 4
captulo 6
Figura 233
Do While().
6.5.3. For()
Diferente do While(), a instruo For() capaz de definir, em uma nica linha,
a varivel e o seu tipo, bem como estabelecer a condio para a estrutura e indicar o contador (figura 234).
Figura 234
Instruo for().
208
Observe, na figura 236 como fica o mesmo exemplo de quebra de loop com a
instruo break, agora dentro da instruo While().
Figura 236
Exemplo com break
dentro de While().
Figura 237
Exemplo de uso
da instruo continue.
Figura 238
Exemplo de uso da instruo
continue dentro de for().
209
Informtica 4
captulo 6
}
Console.WriteLine(O nmero : + num);
}
Console.WriteLine (Mensagem aps o lao);
Console.ReadKey();
continue;
Uma das tarefas mais importantes dos programadores saber realizar o tratamento de erros (consulte o quadro Erros mais comuns) e excees que podem
ocorrer durante a execuo de um projeto. Seja por uma operao invlida ou
at mesmo devido abertura de determinado arquivo inexistente. Para isso,
utilizamos uma estrutura bem familiar: o try-catch-finally (j abordado anteriormente, quando falamos de Java).
Try {
}
Catch
{
}
Outra possibilidade incluir o finally, o que opcional, pois ele sempre ser
executado, ocorrendo exceo ou no.
Try {
}
Catch
{
}
Finally
{
}
210
Figura 239
Converso do contedo
de dois TextBox.
try
{
double var01 = double.Parse(txtLado01.Text);
double var02 = double.Parse(txtLado02.Text);
double resp = var01 * var02;
txtResp.Text = resp.ToString();
}
catch
{
MessageBox.Show(Dados Incorretos);
}
finally {
MessageBox.Show(Mensagem de Finalizao, Mensagem);
}
Implementao do
cdigo com o finally.
6.6.1. Exception
Quando o bloco catch{} executado, poder ser disparada uma exceo. Isso
significa que foi gerado um cdigo de erro e uma descrio correspondente.
Cada erro possui caractersticas diferentes. Com bases nessas informaes, podemos especificar o nmero do erro gerado.
O prximo exemplo (figura 239) mostra a converso do contedo de dois TextBox, transformando os dados digitados em nmeros do tipo float. Nesse ponto,
pode ocorrer um erro, caso o usurio no digite os dados passveis de converso,
como letra ou smbolos.
try
{
double var01 = double.Parse(txtLado01.Text);
double var02 = double.Parse(txtLado02.Text);
double resp = var01 * var02;
txtResp.Text = resp.ToString();
}
catch
{
MessageBox.Show(Dados Incorretos);
}
Ao modificar o exemplo anterior, sero emitidas mensagens de erro, como mostra a figura 241.
211
Informtica 4
captulo 6
Figura 241
Emisso de
mensagens de erro.
try
{
double var01 = double.Parse(txtLado01.Text);
double var02 = double.Parse(txtLado02.Text);
double resp = var01 * var02;
txtResp.Text = resp.ToString();
}
catch (Exception erro) // erro o objeto de controle
{
MessageBox.Show(Dados Incorretos: Fornea apenas valores
numricos);
MessageBox.Show(erro.Message);
MessageBox.Show(erro.Source);
}
finally {
MessageBox.Show(Mensagem de Finalizao, Mensagem);
}
6.8. Classes
Usando os mesmos conceitos do Java, o C# pode implementar classes especficas para programao, as quais seguem os mesmos princpios de formao e
manipulao. Para relembrar os conceitos de programao orientados a objetos,
observe o exemplo a seguir e, depois, confira a classe na figura 243.
Uma classe chamada Carro tem atributos referentes ligados a marca, combustvel e marcha e, ainda, os mtodos movimentar(), parar() e consultar(), que
representam:
212
Vetores e matrizes.
Carro
+ marca : String
+ com : String
+ marcha : int
- velocidade : int
+ movimentar (acelerao : int) : void
+ parar() : void
+ consultar() : int
213
Informtica 4
captulo 6
class Carro
{
// atributos da classe carro
public string marca;
public string comb;
public int marcha;
private int velocidade;
// mtodo movimentar
// recebe o valor (int) que indica a acelao do veculo
public void movimentar(int aceleracao){
velocidade += aceleracao;
}
// mtodo parar
// diminui em uma unidade toda vez que acionado
public void parar(){
if (velocidade > 0){
velocidade--;
}
}
// mtodo consultar
// retorna a velocidade do veculo
public int consultar(){
return velocidade;
}
}
Figura 245
Analisando o cdigo main().
214
Classe Pessoa.
- codigo : int
- nome : String
- endereco : String
- bairro : String
cidade : String
- uf : String
- telefone : String
- celular : String
* mostrarTelefones() ; void
215
Informtica 4
captulo 6
Figura 247
Uso de getters e setters.
Propriedades Form
Name Modifica o nome
Text Atualiza a barra de ttulo do formulrio
Backcolor
BackgroundImage
ControlBox
Icon
Size
WindowState
6.9.2. Button
O Button (boto), apresentado na figura 249, o responsvel por grande parte
da nossa programao. Ao clicar sobre esse componente, acessamos a janela de
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
boto (figura 250). Confira detalhes no quadro Propriedades Button.
Figura 249
Button.
Figura 250
Evento Click.
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 principal para os nossos componentes (figura 248). Confira os detalhes no quadro
Propriedades Form.
rea de programao
Figura 248
Form.
Propriedades Button
Name Modifica o nome
Text Texto para o boto
BackgroundImage
216
Visible
217
Informtica 4
captulo 6
6.9.3. TextBox
6.9.5. ComboBox
O TextBox (caixa de texto) o componente responsvel por receber as informaes do usurio (figura 251), tambm o item mais comum, pois a maioria das
entradas de dados realizada por ele. Observe detalhes no quadro Propriedades
TextBox.
O ComboBox (caixa de agrupamento) permite ao usurio abrir vrias opes (figura 253), assim como ocorre quando escolhemos uma fonte de letra do Microsoft Word. Veja mais detalhes no quadro Propriedades ComboBox, os detalhes.
Figura 253
Figura 251
ComboBox.
TextBox.
Propriedades Textbox
Name Modifica o nome
Text
BackColor
ForeColor
Cor da fonte
CharacterCasing
TextAlign
em maiscula ou minscula
Propriedades ComboBox
Para a insero de itens, escolha a opo Items. Uma nova caixa de dilogo
ser aberta: os itens devero ser colocados um abaixo do outro (one per line).
Aps a confirmao, teremos o ComboBox carregado com as informaes
(figura 254).
Figura 254
6.9.4. Label
ComboBox
(carregado).
Usamos o Label (rtulo) para inserir rtulos nos formulrios, como mostra a
figura 252 (consulte o quadro Propriedades Label, para obter detalhes).
Figura 252
Label.
Propriedades Label
Name Modifica o nome
Text
BackColor
ForeColor
Cor da fonte
218
Font
6.9.6. ListBox
Diferentemente do ComboBox, o ListBox (caixa de lista) disponibiliza
vrias opes aos usurios, porm, em forma de lista. Isso permite a
utilizao de barra de rolagem caso o nmero de opes ultrapasse o
limite da caixa da janela (figura 255). Consulte o quadro Propriedades
ListBox.
219
Informtica 4
captulo 6
Figura 255
Propriedades CheckBox
ListBox.
CheckState
Para verificar o que foi selecionado pelo usurio, devemos realizar o teste em
cada um dos elementos. Assim, implementaremos o cdigo anterior com um
boto, para verificao dos itens selecionados, cuja sada ser uma caixa de dilogo contendo todas as informaes selecionadas (figuras 258 a e 258 b).
Propriedades ListBox
CheckBox.
220
O cdigo descrito refere-se apenas ao evento click, relacionado ao boto de verificao (confira na figura 259).
6.9.7. CheckBox
Figura 257
Figura 259
Cdigo descrito do evento
click, com a verificao.
6.9.8. RadioButton
O RadioButton (boto de seleo) diferente do CheckBox, pois pode estabelecer relaes entre si, o que possibilita fornecer mltiplas opes para que se
escolha somente uma. O exemplo ilustrado nas figuras 260 (a e b) e 261 verifica
o estado civil do usurio (confira tambm o quadro Propriedades RadioButton).
Figuras 260
Verificao da opo
do RadioButton.
221
Informtica 4
captulo 6
Figura 261
O detalhamento
da verificao.
Propriedades RadioButton
Name Modifica o nome
Text
Propriedades Agrupamento
Name Modifica o nome
Text Ttulo da caixa de grupo
6.10. Eventos
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,
duplo clique, passagem de mouse etc. Por exemplo, ao inserir um boto para finalizar a aplicao, devemos associar o cdigo a um determinado evento, no caso, o
clique. Na figura 264, podemos verificar a identificao do boto de acordo com a
atribuio do seu name e com o evento que receber a programao.
CheckState
6.9.8.1. Agrupamento
Figura 264
Nome do boto indicado
na propriedade name.
Evento
Eventos.
Em alguns momentos, ser necessrio reunir grupos de opo usando o RadioButton. Para que os controles fiquem vinculados, mas dentro de um determinado grupo, devemos utilizar um container, ou melhor, uma estrutura que
permita criar tal vnculo. Selecione, ento, o componente GroupBox da aba
Containers da janela ToolBox (figura 262). Confira, tambm, o quadro Propriedades Agrupamento.
Figura 262
Container
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
7.1. Programao
Programao em VB.
A programao em Visual Basic, ou simplesmente VB, exige os mesmos cuidados j apresentados anteriormente. importante, porm, fazer uma recordao
sucinta.
Tipo
Implementao
Byte
Sbyte
Ushort
Short
Uinteger
Inteiro de 32 bits com sinal (-2 147 483 648 a 2 147 483 647)
Integer
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
226
Tabela 14
Tipos de dados em VB.
227
Informtica 4
captulo 7
Data
Os exemplos prticos para mostrar a funcionalidade dos operadores sero executados no Console Application.
7.3. Operadores
Aritmticos
Cdigo implementando
variveis.
228
Diviso
&
Expoente (potncia)
Figura 272
Visibilidade
dentro da rotina
Outra alternativa fazer o mesmo dentro da classe, para que possam ser acessadas por outras rotinas da mesma classe. O cdigo ilustrado na figura 271
implementa variveis de visibilidade pblicas dentro da aplicao.
Figura 271
* Multiplicao
Subtrao
Dim x
Dim y As Integer
Dim nome As String
Dim endereco, cidade, estado As String
Dim md = 10
Dim salario As Double
Podemos definir, dentro das rotinas tendo visibilidade local, o cdigo mostrado
na figura 270.
Mod
Figura 270
+ Adio
Sub Main()
Console.WriteLine(Verificando os Operadores)
Dim x = 10
Dim y = 15
Console.WriteLine(Soma: & (x + y))
Console.WriteLine(Subtrao: & (x - y))
Console.WriteLine(Multiplicao: & (x * y))
Console.WriteLine(Diviso: & (y / x))
Console.WriteLine(Parte inteira da diviso: & (x \ 3))
Console.WriteLine(Resto da Diviso (10/3): & (x Mod 3))
Console.WriteLine(Bom & Dia & aluno)
Console.WriteLine(Quadrado de trs: & 3 ^ 2)
Console.ReadKey()
End Sub
Visibilidade dentro
da rotina
Visibilidade global
Exemplo de operadores
aritmticos.
Igual
<>
Diferente
229
Informtica 4
captulo 7
+= Adio Igual
-=
/=
Diviso Igual
&=
Concatena Igual
^= Potncia Igual
Subtrao Igual
Figura 273
Exemplo de
operadores
aritmticos de
atribuio
reduzida.
Sub Main()
Console.WriteLine(Operadores Reduzidos)
Dim x As Integer = 10
Dim y As Integer = 15
Dim frase As String = Bom
x += 2
Console.WriteLine(Soma + igual: & x)
y -= 10
Console.WriteLine(Subtrao + igual: & y)
x est com novo valor !!!
x *= 2
Console.WriteLine(Multiplicao + igual: & x)
x /= 2
Console.WriteLine(Diviso + igual: & x)
frase &= Dia!!!!
Console.WriteLine(Resto da Diviso + igual: & frase)
y ^= 2
Console.WriteLine(Potncia + igual: & y)
Console.ReadKey()
End Sub
not Not
x = CInt(idade)
y = CSng(salario)
z = CInt(Console.ReadLine())
Exemplos de
converses.
dt = CDate(01/01/2010)
*= Multiplicao Igual
Figura 274
Sub Main()
Dim x As Integer = 15
If x >= 10 Then
Console.WriteLine(A varivel X maior que 10)
Console.ReadKey()
End If
End Sub
Figura 275
Exemplo de
verificao
de varivel.
Sub Main()
Dim x As Integer = 5
If x >= 10 Then
Console.WriteLine(A varivel X maior que 10)
Else
Console.WriteLine(A varivel X menor que 10)
End If
Console.ReadKey()
End Sub
Figura 276
Expresses
diferentes para
cada alternativa.
Informtica 4
captulo 7
Figura 277
Verificando
condies mltiplas.
Sub Main()
Dim x As Integer = 3
If x = 1 Then
Console.WriteLine(A varivel X UM)
ElseIf x = 2 Then
Console.WriteLine(A varivel X DOIS)
ElseIf x = 3 Then
Console.WriteLine(A varivel X TRS)
Else
Console.WriteLine(Qualquer outro valor)
End If
Console.ReadKey()
End Sub
Sub Main()
Dim x As Integer = 3
Select Case x
Case 1
Console.WriteLine(O valor de X UM)
Case 2
Console.WriteLine(O valor de X DOIS)
Case 3
Console.WriteLine(O valor de X TRS)
Case Else
Console.WriteLine(Qualquer outro valor)
End Select
Console.ReadKey()
End Sub
7.5.1. While()
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
um contador dentro da estrutura (figura 279).
232
Sub Main()
Console.WriteLine(Estrutura WHILE)
Dim cont As Integer = 0
While (cont <= 10)
Console.WriteLine(Numero: & cont)
cont = Cont + 1
End While
Console.ReadKey()
End Sub
Figura 279
Instruo While().
7.5.2. Do While()...Loop
Representa a mesma estrutura da instruo anterior (figura 280).
Figura 280
Instruo
Do While()...Loop.
Sub Main()
Console.WriteLine(Estrutura WHILE)
Dim cont As Integer = 0
Do
Console.WriteLine(Numero: & cont)
cont = cont + 1
Figura 281
Loop Until cont >= 10
Console.ReadKey()
End Sub
Teste no fim
do Loop.
7.5.4. For
Diferentemente da instruo While(), a instruo For capaz de definir, em
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.5. For...Step
Contar de 0 a 10, mostrando o resultado. No entanto, dessa vez o contador
ser incrementado de 2 em 2 (figura 283).
233
Informtica 4
captulo 7
Figura 282
Instruo For.
Sub Main()
For x = 0 To 10
Next
Console.ReadKey()
End Sub
For x = 0 To 10 Step 2
Next
Console.ReadKey()
End Sub
Try
Dim var01, var02, resp As Double
var01 = CDbl(TextBox1.Text)
var02 = CDbl(TextBox2.Text)
resp = var01 * var02
TextBox3.Text = resp
Catch erro As DivideByZeroException
MsgBox(Dados Incorretos)
Finally
MsgBox(Mensagem de finalizao, Mensagem)
End Try
Figura 284
Verificao de erro
na converso de
dados das variveis.
Sub Main()
Console.WriteLine(Nmero: & x)
Figura 283
Instruo For...Step.
Console.WriteLine(Nmero: & x)
Try
instrues que podem gerar o erro de execuo
Catch
o que deve ser feito se o erro ocorrer
Finally
opcional, mas executado
End Try
Assim, como nas outras linguagens (Java e C#), podemos capturar os valores
de erros:
vetor de string
Dim j(2) As String
j(0) = seg
j(1) = ter
MsgBox(j(0))
vetor de string
Dim semana() As String = {dom, seg, ter, qua, qui, sex}
MsgBox(semana(0))
Formas de declarao
de vetores e matrizes.
Informtica 4
captulo 7
MsgBox(matriz(1, 1))
7.9.3. TextBox
7.8. Classes
Usando os mesmos conceitos de Java, o Visual Basic pode implementar classes
especficas para programao, as quais seguem os mesmos princpios de formao e manipulao, incluindo os getters e setters.
7.9.4. Label
Da mesma forma que em C#, a janela ToolBox conta com vrios componentes para
o desenvolvimento de aplicaes em VB. Para os componentes apresentados a seguir,
utilize as mesmas descries de propriedades mencionadas no captulo 6.
7.9.1. Form
Quando a aplicao iniciar, aparecer o Form1 (nome padro) utilizado para o
desenvolvimento dos trabalhos. Trata-se do principal repositrio para os componentes, como mostra a figura 286.
Figura 286
Form.
7.9.5. ComboBox
O ComboBox permite abrir uma cortina de opes ao usurio (figura 291).
Figura 291
ComboBox.
7.9.2. Button
O Button (figura 287 a e b) o responsvel por grande parte da programao.
Ao clicar nele, acessamos a janela de cdigos na qual o primeiro evento, click,
est previamente selecionado (figura 288).
Figura 287 a e b
Button.
Para a insero de itens, uma nova caixa de dilogo ser aberta e os itens devero 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
Evento Click.
236
Figura 292
ComboBox
carregado.
237
Informtica 4
captulo 7
Figura 296
7.9.6. ListBox
Verificao da
caixa CheckBox.
Figura 297
Cdigo referente apenas
ao evento click.
7.9.8. RadioButton
Vamos utilizar o mesmo exemplo do C# e solicitar ao usurio a escolha do estado civil (figura 298 e, com detalhes, na figura 299).
Figura 298
7.9.7. CheckBox
Verificando a opo
do RadioButton.
A figura 296 mostra como fazer a verificao de seleo por meio de um boto.
O cdigo descrito na figura 297 referente apenas ao evento click, o qual est
relacionado ao boto de verificao.
238
Figura 299
Detalhes da opo
do RadioButton.
239
Informtica 4
captulo 7
7.9.8.1. Agrupamento
Use um container para realizar o agrupamento dos componentes RadioButton,
assim como no mesmo exemplo de C# (figura 300). Confira, em seguida, o
quadro Propriedades RadioButton.
Figura 300
Agrupamento.
Propriedades RadioButton
Name Modifica o nome
Text Ttulo da caixa de grupo
7.10. Eventos
Existe uma maneira muito fcil de controlar os eventos em VB. Na parte superior da janela de Code, como mostra a figura 301, aparecem todos os componentes inseridos no formulrio, incluindo o prprio formulrio.
Figura 301
Componentes.
Clique para abrir o combo de opes (figura 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
Configurao: via arquivos WebConfig e CSS , que determinam como a aplicao vai ser executada.
Um dos principais caminhos para criar uma interface entre o usurio e a aplicao
ASP.NET o Web Form, cuja parte executvel armazenada em um assembly
(.dll), porm, executada no servidor e controlada por um work process (aspnet_wp.exe). Funciona em parceria com o IIS, que inicia a execuo do ASP.NET
(aspnet_wp.exe) carregando o assembly do Web Form, o qual, por sua vez, constri a resposta para o usurio de acordo com sua requisio e envia uma resposta
no formato HTML (figura 304).
SP.NET uma plataforma de desenvolvimento usada para a construo de aplicaes Web e Web Service, as quais sero executadas
por um servidor, que, nesse caso, o IIS (Internet Information
Service servio de informao de Internet) da Microsoft. No se trata apenas
de uma tecnologia de desenvolvimento, mas de um conjunto de ferramentas que
permite a integrao entre servidores Microsoft, segurana, cdigo compilado,
e acesso a bancos de dados via ADO.NET e ao .NET Framework, bem como
suporte total ao XML.
Como ilustra a figura 304, partir da ao do usurio, o navegador cria a requisio de uma pgina Web ou ativa um determinado servio. Isso faz com que a
parte lgica da pgina entre em ao. A resposta ser no formato HTML, devidamente configurada como, por exemplo, a forma grfica que ser apresentada
ao usurio (formatao).
Figura 305
Aplicao ASP.NET.
244
245
Informtica 4
captulo 8
Figura 308
Figura 306
ToolBox para
Aplicao Web.
WebForm.
Verificando o
resultado final.
Figura 309b
Minha primeira
aplicao.
Servidor em
Execuo.
246
247
Informtica 4
captulo 8
<html xmlns=http://www.w3.org/1999/xhtml>
<head>
<meta http-equiv=Content-Type content=text/html; charset=utf-8 />
<title>Exemplo em ASP 3.0</title>
</head>
<% response.write(now()) %>
<body>
</body>
</html>
O resultado pode ser visto na figura 311. Lembre-se de executar o cdigo usando o IIS (localhost).
Dessa forma, as tags marcadoras do ASP eram colocadas onde se desejava que
o cdigo aparecesse. Elas ficavam misturadas com o HTML, gerando um cdigo de difcil leitura e manuteno, que foi batizado de cdigo espaguetti. O
ASP.NET eliminou esse problema, utilizando os Server controls, ou seja, tags
que podem ser interpretadas diretamente pelo servidor e esto divididas em trs
categorias de Server Controls.
Figura 311
Execuo do ASP.
248
Se voltarmos ao conceito das tags em HTML, lembraremos que o grande problema era o controle de entrada de dados, ou seja, aquilo que o usurio poderia
digitar ou no. Pois os controles de validao do servidor (validation server controls) permitem justamente validar essas entradas e ainda exibem mensagens.
Cada controle executa uma validao especfica, aps uma ao do usurio por
meio de controle Button, ImageButton, ou LinkButton.
8.2. Eventos
Para que o cdigo seja executado no momento correto, podemos utilizar os
manipuladores de evento. O cdigo seguinte determinar o momento em que a
verificao da data/hora dever ser lida no servidor (figura 314). O manipulador
249
Informtica 4
captulo 8
realizar uma sub-rotina quando determinado evento ocorrer. No exemplo anterior, o evento Page_Load executado quando uma pgina carregada.
Figura 314
Verificao de
data e hora.
Figura 315b
<html xmlns=http://www.w3.org/1999/xhtml >
<head runat=server>
<title>Exemplo em ASP - VB</title>
</head>
<body>
<p id=lblLogin>rea Restrita - Usando Web Control</p>
<p>Login:
<input id=txtLogin type=text /></p>
<p id=lblSenha>
Senha:
<input id=pwdSenha type=password /></p>
<p>
<input id=btnEnviar type=button value=Enviar />
<input id=btnCancelar type=button value=Cancelar /></p>
</body>
</html>
Detalhamento do uso
do Server Control.
Assim como ocorreu em C# e VB.NET, a janela de Properties dever ser utilizada para ajustes e identificao dos componentes (figura 316).
Figura 316
Janela Properties.
251
Informtica 4
captulo 8
Figura 317a
Figura 318
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
login e senha.
Session(aula) = ASP.NET
Session(data) = Now()
Aps a definio da palavra-chave da sesso, ser determinado o seu valor. A
recuperao dos dados ser feita da mesma forma, identificando a palavra-chave.
No exemplo da figura 318, vamos criar as duas variveis mencionadas e recuper-las aps o clique do boto.
Ao clicarmos no boto Enviar, os itens referentes a Estamos vendo uma aula de:
e Horrio: sero preenchidos de acordo com o cdigo mostrado na figura 319.
<html xmlns=http://www.w3.org/1999/xhtml >
<head runat=server>
<title>Session em ASP.NET</title>
</head>
<script runat=server>
Sub Page_Load(ByVal Sender As Object, ByVal E As EventArgs)
Session(aula) = ASP.NET
Session(data) = Now()
End Sub
Figura 319
Preenchendo itens.
253
Informtica 4
captulo 8
Figura 321
Mostrar2.Text = Session(data)
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:
<asp:Label ID=Mostrar2 runat=server Text=></asp:Label>
</form>
</body>
</html>
Link para
visualizao.
No cdigo principal, podemos verificar somente a criao das chaves (figura 322).
Figura 322
<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)
Session(aula) = ASP.NET
Session(data) = Now()
End Sub
</script>
<body>
<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>
Resultado aps
o clique no boto.
255
Informtica 4
captulo 8
Mostrar2.Text = Session(data)
End Sub
</script>
<body>
<form id=Form1 name=formulario runat=server>
<br/> Estamos vendo uma aula de:
<asp:Label ID=Mostrar1 runat=server Text=></asp:Label>
<br/>Horrio:
<asp:Label ID=Mostrar2 runat=server Text=></asp:Label>
</form>
</body>
</html>
Figura 324b
Eliminado o boto
para visualizao.
256
Informtica 4
captulo 8
No cdigo que estamos utilizando como exemplo, encontramos para cada link a
identificao do arquivo e o valor a ser transferido via URL (figura 326).
Figura 326
Identificao de arquivo
e valor a transferir.
<head runat=server>
<head runat=server>
<title>Menu de Opes</title>
</head>
</head>
<body>
<script runat=server>
<div>
Captura da
varivel no evento
Load_Page.
Case 3
</div>
End Select
</form>
</body>
</html>
</form>
</body>
</html>
Opo escolhida
via menu.
258
259
Captulo 9
ADO.NET
DataSet
DataReader
Objetos para banco de dados
Mtodos de conexo
Consideraes finais
Referncias bibliogrficas
Glossrio
Informtica 4
captulo 9
Figura 329
Estrutura geral.
Tabela 14
Provedores de
conexo.
Provedor
ODBC Data Provider
API Prefixo: Odbc
OleDb Data Provider
API Prefixo: OleDb
Oracle Data Provider
API Prefixo:Oracle
SQL Data Provider
API Prefixo:Sql
262
DESCRIO
Geralmente usada para banco
de dados mais antigos que utilizam
a interface ODBC
Conexo do tipo OleDb, como o
Access ou Excel
SqlConnection, OdbcConnection, OleDbCommand e SqlCommand. Para termos uma viso geral dos mecanismos de conexo, observemos a figura 329, que
mostra toda a estrutura.
Os principais pacotes utilizados pelo ADO.NET so:
System.Data: contm as classes que representam tabelas, colunas, linhas e
tambm a classe DataSet de todos os provedores, alm das interfaces IDbCommand, IDbConnection, e IDbDataAdapter, que so usadas por todos
os provedores de conexo;
System.Data.Commom: define as classes para os provedores de dados Db
Connection e DbDataAdapter;
ystem.Data.OleDb: fonte de dados Ole Db usando o provedor .NET
S
OleDb;
System.Data.Odbc: fonte de dados ODBC usando o provedor .NET
ODBC;
System.Data.SqlTypes: dados especficos para o SQL Server.
Alm disso, o ADO.NET oferece classes referenciadas:
Informtica 4
captulo 9
9.1. DataSet
O objeto recordset (ADO), que armazena somente uma coleo de tabelas,
tem desvantagens em relao ao DataSet, que faz parte do System.Data. O
DataSet controla uma cpia do banco de dados, representando um conjunto
de informaes em memria cach que no esto conectadas com o banco
de dados do sistema. Baseado em XML e independente da fonte de dados,
o DataSet pode armazenar vrias verses das tabelas. Apesar de trabalhar
no formato desconectado, o DataSet possui mecanismos que do suporte ao
modelo conectado. Entre os mtodos disponveis, podemos destacar alguns
mostrados na tabela 15.
Tabela 15
DataSet.
Mtodos
FieldCount
Colees
Tables
Mtodos
DESCRIO
Uma coleo de tabelas que
armazenam os dados atuais a serem
manipulados
DESCRIO
DESCRIO
DataReader.
IsClosed
Read
Close
Fecha o objeto
AcceptChanges
Clear
Mtodos
Clone
Columns
Copy
Rows
Linhas da tabela
GetChanges
PrimaryKey
Chave primria
GetXmlSchema
NewRow
Reset
Copy
TableName
Clear
9.2. DataReader
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 DataReader 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
Tabela 16
DESCRIO
Tabela 17
DataTable.
265
Informtica 4
captulo 9
Figura 330
Mtodos
RowFilter
DESCRIO
Retorna a expresso usada para
filtrar os dados
Objeto connection
especfico.
DESCRIO
ConnectionString
Sort
DataBase
DataSource
Connection String.
State
Item
Tabela 19
Addnew
Table
Delete
O cdigo mostrado na figura 332, escrito em C#, representa os passos necessrios para a conexo de uma base de dados SQL Server. A partir desse ponto, as
operaes com o banco de dados j podem ser realizadas.
Find
Figura 332
Incluindo os namespace
using System.Data
using System.Data.SqlClient
Cdigo
representando
passos para conexo.
267
Informtica 4
captulo 9
using System;
using System.Data;
using System.Data.SqlClient;
class ExemploConexao
{
static void Main()
{
// criando a linha de conexo
SqlConnection conexao = new SqlConnection(Data
Source=(localhost);Initial Catalog=papelaria; User ID=usuario;Passwor
d=db2009conect);
// definindo um DataReader Nullo
SqlDataReader drExemplo = null;
// Abre o banco de dados
conexao.Open();
// Cria a linha de comando
SqlCommand comando = new SqlCommand(select * from Cliente,
conexao);
// Executa a leitura dos dados
drExemplo = comando.ExecuteReader();
// faz a leitura dos dados
while (drExemplo.Read())
{
268
Para obter mais colunas, podemos utilizar o comando da forma como sugerida
na figura 335.
Figura 335
Console.WriteLine(drExemplo[0]);
Console.WriteLine(drExemplo[1]);
Console.WriteLine(drExemplo[2]);
Indicando o nome
da coluna.
Informtica 4
captulo 9
Figura 337
Figura 340
Descrio da tabela e
contedo.
Registros diferentes
para cada linha.
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.
Figura 339
Nome dos
componentes.
Figura 341
DataGrid.
271
Informtica 4
captulo 9
dtMinhaDataSet.Tables.Add(dtMinhaTabela)
Finalmente, carregamos o DataSet para dentro do DataGrid.
dtMinhaTabela.SetDataBinding(dtMinhaDataSet, MinhaTabela)
Os comandos anteriores representam somente a criao do DataTable. O cdigo
completo ficar como se apresenta na figura 342.
Figura 342
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.OleDb
O cdigo
completo.
273
Informtica 4
captulo 9
Figura 345
inclui a tabela no dataset
Dim dtMinhaDataSet As DataSet = New DataSet()
dtMinhaDataSet.Tables.Add(dtMinhaTabela)
vincula o dataset1 ao datagrid1
dtgMinhaTabela.SetDataBinding(dtMinhaDataSet, MinhaTabela)
End Sub
End Class
Incluso do mtodo
ReadOnly como True.
Isso impede que o usurio faa novas incluses. Como as colunas so montadas individualmente, 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
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.
Figura 346
dtColuna = New DataColumn()
dtColuna.DataType = System.Type.GetType(System.String)
dtColuna.ColumnName = Nome
dtColuna.ReadOnly = False
dtColuna.Unique = True
dtMinhaTabela.Columns.Add(dtColuna)
Utilizao do
mtodo Unique.
O DataView permite estabelecer uma ligao com a interface de usurio por meio
do DataBinding, no qual podemos realizar operaes como pesquisa, navegao,
filtro, etc. O DataView retorna os dados contidos em um DataTable. possvel que
haja vrios DataView, que, alis, no podem ser considerados tabelas. O exemplo da
figura 347 mostra dois Datagrid e dois botes. No primeiro DataGrid, carregado
o contedo da tabela; no segundo, ser um DataView, ordenado por nome.
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.
275
Informtica 4
captulo 9
Figura 348
Variveis definidas
dentro da classe.
Figura 349
Cdigo do boto da
opo Carregar.
Imports System.Data.OleDb
Public Class frmExemplos
Dim conexao As String = Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=D:\Usuarios.mdb
Dim comando As String = Select * from operadores
Dim adpTabela As New OleDbDataAdapter(comando, conexao)
Dim dsTabela1 As New DataSet()
Dim dsTabela2 As New DataSet()
Figura 351
O cdigo completo.
Utilizao
do DataView.
dtgOrdenado.CaptionText = Listagem de Operadores
adpTabela.Fill(dsTabela2, operadores)
Dim dvTabela As New DataView(dsTabela2.Tables(operadores))
dvTabela.Sort = nome
dtgOrdenado.DataSource = dvTabela
Informtica 4
captulo 9
Figura 356
o banco via ASP.NET. O primeiro passo criar um projeto tipo Visual Basic e
um template Web Aplication. No modo Design, ser adicionado o componente
SqlDataSource (figura 353).
Testando a conexo.
Figura 353
Componente
SqlDataSource.
O prximo passo ser criar a nova conexo usando o boto New Connection.
Aparecer uma segunda janela, na qual poderemos indicar o nome e o local
onde se encontra a base de dados (figura 355).
Figura 355
Nesse ponto, ser possvel realizar um teste de conexo com o banco de dados,
usando o boto Test Connection. Se estiver tudo OK, aparecer uma mensagem de confirmao (figura 356).
Aps o teste de conexo, finalize a tela clicando em OK. Retorne janela anterior. Podemos disponibilizar a Connection String, como mostra a figura 357.
Localizao do banco
de dados.
Figura 357
Visualizando
a String de
conexo.
278
279
Informtica 4
captulo 9
Figura 359
Agora, podemos ver (figura 361) o cdigo que foi implementado automaticamente.
Configurando o SQL.
Figura 361
<asp:SqlDataSource ID=SqlDataSource1 runat=server
ConnectionString=<%$ ConnectionStrings:ConnectionString %>
O cdigo
implementado
automaticamente.
Uma nova janela ser aberta para a criao da instruo SQL inicial. Observando 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
dados, conforme a figura 360.
Figura 360
Figura 363
Teste do SQL
(Query).
Selecionando o
DataSource.
Finalizada essa operao, o cdigo seguinte ser o que mostra a figura 364.
Figura 364
<asp:GridView ID=GridView1 runat=server
AutoGenerateColumns=False
DataKeyNames=cod_ID DataSourceID=SqlDataSource1>
<Columns>
Concluda a
operao de
selecionar o
DataSource.
281
Informtica 4
Referncias bibliogrficas
O layout ainda no foi formatado, mas j possvel verificar o resultado pelo navegador (figura 365). Nos campos destinados aos nomes aparecem os ttulos da coluna.
E todos os dados so disponibilizados conforme composio da instruo SQL.
Figura 365
Visualizao da Tabela.
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 software. Por isso, foram abordados aspectos de lgica de programao e programao 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 aprimoramento das tcnicas de programao. Portanto, seguem abaixo algumas dicas.
rabalhar a lgica de programao essencial. Por isso, a prtica dever ser
T
contnua.
esquisar sempre em livros especializados, revistas tcnicas ou at mesmo
P
na internet novas tecnologias e recursos que a linguagem pode oferecer e
procurar aplic-las.
anter-se atualizado, pois as linguagens de programao esto sempre se
M
renovando e novas verses so lanadas a todo o momento.
Aos leitores, alunos ou profissionais da rea, boa sorte e sucesso na rea escolhida.
282
283
Glossrio
informtica
Glossrio
para definir regras para que os usurios da rede local acessem a internet.
XML, que pode ser traduzido por Javascript e XML Assncrono, o nome dado
utilizao metodolgica de Javascript e XML para fazer com que as pginas
web se tornem mais interativas.
ASP (de Active Server Pages ou pginas de servidor ativo) plataforma da Mi-
Web e Web Service, as quais sero executadas por um servidor, que, nesse caso, o IIS
(Internet Information Service ou Servio de Informao de Internet) da Microsoft.
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.
badblock (bloco ruim) falhas causadas por perda do poder magntico de alguma rea na parte magntica do disco.
barramento (Bus) circuito integrado que faz a transmisso fsica de dados de
um dispositivo a outro. Ele formado por vrias linhas ou canais, como se fossem fios eltricos, que transmitem sinais eltricos tratados como bits.
tware com a funo de reconhecer, configurar e iniciar os dispositivos do computador, e ainda de iniciar o sistema operacional. Ao ligar o computador, os
primeiros sinais que voc v na tela so da interface do BIOS.
bit menor poro de informao possvel em informtica. Um nico bit representa somente duas informaes, 0 ou 1.
bluetooth tecnologia que permite comunicao simples e segura entre aparelhos eletroeletrnicos.
blu-ray formato criado em 2008 para as empresas que queriam gravar seus fil-
mes em mdias mais seguras contra pirataria e que pudessem armazenar imagens
de alta resoluo. A leitura nesse caso por meio de um feixe de raio laser de cor
azul-violeta com comprimento de onda de 405 nanmetros, diferente da tecnologia do CD/DVD, cujo raio vermelho, com comprimento de onda de 605nm.
BMP terminao usada para o formato Bitmap, que significa mapa de bits. Nesse
tipo de representao, cada ponto da imagem associado a um valor (no caso, o bit).
boot o termo (bota) empregado em informtica em analogia ao chute, o
recursos da rede.
precisa ler dados de uma fonte que no tenha velocidade de transmisso constante.
ma computacional.
287
informtica
Glossrio
cooler (dissipador de calor) dispositivo, tambm chamado de fan ou ventoinha, que ajuda a manter a temperatura bem abaixo da mxima admissvel e,
assim, conservar o processador.
CPD Centro de Processamento de Dados, nome obsoleto atualmente.
CPU (Central Processing Unit ou unidade central de processamento) refere-
CRT (Catodic Ray Tube ou tubo de raios catdicos) tecnologia usada para mo-
CD-R CD que pode ser gravado, como indica o sufixo R (de Recordable ou
CD-ROM O CD leva a sigla ROM para indicar que somente para leitura
ou seja, um dado que ser empregado nas consultas base de dados. Tipos
de chaves em um modelo relacional primrias, candidatas, secundrias e
estrangeiras.
chips circuitos integrados.
CI (Circuito Integrado) componente capaz de realizar somente um determinado tipo de operao, com determinada quantidade de dados.
clusters blocos em que os setores do disco so divididos.
DMA tecnologia implementada nas placas-me que faz com que a transmisso
de dados entre o disco rgido e outras interfaces, como memria, placa de rede,
outros discos, etc. seja direta, sem sobrecarregar o processador.
programao.
288
informtica
Glossrio
drive dispositivo para inserir disco flexvel (disquete), CD-ROM e/ou DVD e
ocorrem normalmente no fornecimento de energia eltrica e podem causar falhas nos equipamentos ou diminuir sua vida til.
Ext2 (second extended file system ou segundo sistema extendido de arquivos) sistema de arquivos que era o mais comum nas distribuies e que deu origem ao Ext3.
DSP sigla em ingls para Digital Signal Processor ou processador de sinais digitais.
DVD sigla para Digital Vdeo Disc ou disco digital de vdeo, para armazenar
FASTATA tecnologia que permite que os dados armazenados em discos rgidos, 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.
FAT (File Allocation Table ou tabela de alocao de arquivos) primeiro sistema
filtro de linha equipamento usado para bloquear o fluxo de energia caso a ten-
fio terra ponto ou caminho no solo que serve de descarga para a corrente eltrica que escapa do aparelho eltrico.
DVD-RW disco que tem a mesma capacidade do DVD-R, mas pode ser grava-
EIDE tecnologia que permite que os dados armazenados em discos rgidos, 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.
surge algum defeito, ou tambm para liberar a energia esttica captada do ambiente.
290
dispositivos, como celulares, cmeras, PDAs e notebooks, em formato de cartes de memria e pen-drives ou unidades internas no lugar do HD.
da rede atravs do cabo de fora, preparando-a para que chegue aos componentes do computador da forma adequada.
291
informtica
Glossrio
gabinete caixa normalmente metlica que organiza e fixa os seus vrios componentes, como HD, CD/DVD-ROM, placa-me, placas de expanso com conectores externos (USB, serial, vdeo, som etc.), sustenta a placa-me e protege
as placas do contato direto com pessoas, umidade, energia esttica, poeira.
game station assim so chamados os computadores montados para aficionados
formato de imagem.
gigabyte (GB) unidade utilizada para indicar a capacidade de armazenamento
de dados em um computador, em que 1GB equivale a 1 milho de bytes, segundo o Sistema Internacional de Unidades (SI).
Java linguagem de programao desenvolvida nos anos 1990 por uma equipe
de programadores chefiada porJames Gosling, na Sun Microsystems, conglomeradonorte-americano da rea de informtica.
journaling (registro de dados como em um jornal) recurso do sistema de arquivos Linux, no qual as informaes so salvas automaticamente durante a
execuo do sistema operacional.
JPG ou JPEG (Joint Photographic Experts Group ou Grupo Reunido de Especialistas em Imagem) tipo de imagem.
JVM (Java Virtual Machine ou, literalmente, mquina virtual Java) programa
K
L
LCD (Liquid Crystal Displays ou tela de cristal lquido) tecnologia que utiliza a
LEDs (diodos emissores de luz) pequenas lmpadas que podem ser controladas uma a uma e variar sua luminosidade at se apagarem por completo numa
imagem totalmente escura.
HTML (HyperText Markup Language ou linguagem de marcao de hipertexto) linguagem utilizada para o desenvolvimento de pginas da internet.
link texto que geralmente aparece em azul, sublinhado, e que contm uma
URL da pgina a qual ele se refere, que fica escondida, no visvel.
I/O abreviao em ingls para input/output, que significa entrada/sada. Referem-se a dispositivos utilizados para a comunicao entre o sistema computacional e os usurios.
IDE (Integrated Development Environment ou ambiente integrado de desenvolvimento) programa de computador que rene recursos e ferramentas
comunicao com o processador, cuja funo chamar sua ateno para alguma
ocorrncia de que deva ser informado.
292
ou OpenSource (cdigo aberto em portugus), desenvolvido sem cunho comercial, ou seja, criado por programadores que no tm inteno de vend-lo, mas
disponibiliz-lo para qualquer pessoa que queira utiliz-lo.
293
informtica
Glossrio
NTFS (New Technology File System ou nova tecnologia em sistema de arquivos) sistema de arquivos utilizado pelo Windows, traz diversas caractersticas
Standards Organization ou Organizao Internacional de Padres), com o intuito de padronizar os protocolos em camadas, com o nome de Open System
Interconnection (OSI), ou seja, interconexo de sistemas abertos.
monotarefa sistema operacional que consegue processar apenas uma instru-
o de cada vez.
motherboard placa-me.
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
qual se quer interagir e que tipo de ao se pretende realizar.
operacional Microsoft.
emissor de luz.
on-board (na placa) expresso que significa que os circuitos esto impressos
P2P (Peer-to-Peer ou de par em par) termo usado para os softwares que fazem
transferncia de arquivos de um computador para outro.
pacote software que pode ser instalado no Linux.
aberto, gratuito e est disponvel tanto para o Windows como para o Linux.
parmetro elemento digitado depois do primeiro espao, ou seja, a primeira palavra um comando e as demais, separadas por espao, so os parmetros (porque o
espao justamente um caractere separador entre um comando e um parmetro).
N
294
295
informtica
Glossrio
dimenses.
pass senha.
password caracteres digitados pelo usurio, com limitaes e uma janela para
a entrada de dados.
pasta forma mais simples de organizar o contedo em um sistema operacional.
PATA (vem de Parallel ATA) tecnologia que permite que os dados armazenados
plug and play modo pelo qual o sistema operacional pode reconhecer automaticamente o dispositivo, mesmo que este demande algum driver especfico. Os
dispositivos mais comuns como pen-drives, mouses e impressoras, podem ser
utilizados assim que so conectados.
plugn play (conecte e use) tcnica que reconhece e instala muitos dispositi-
PMBOK - Guia do Conjunto de Conhecimentos em Gerenciamento de Projetos publicao do PMI (Project Management Institute ou Instituto de Geren-
em discos rgidos, 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.
porta serial conector que foi muito utilizado no passado para conectar mouse,
296
impressora, leitores de cdigo de barras e outros dispositivos de automao, comercial e industrial, enviando os bits de forma serial.
conexo antes que um dado seja enviado e mantm o estado da conexo, mesmo
que as camadas inferiores da rede no ofeream controle de estado.
pseudocdigo linguagem com a qual os algoritmos so desenvolvidos.
297
informtica
Glossrio
RAD (Rapid Application Development ou desenvolvimento rpido de aplicao) linguagem capaz de, por si s, gerar cdigos com os quais podem ser
tador em geral mais potente que os PCs de estaes de trabalho e que tem a
funo de prover algum servio na rede.
setup programa de configurao que todo micro tem gravado dentro da me-
que, por ficarem dentro da CPU, possibilitam acesso aos dados bem mais veloz
do que ao acesso das memrias RAM ou cache.
RGB sigla para Red, Green e Blue ou vermelho, verde e azul que determina
ROM sigla para Read-Only Memory, que significa memria apenas de leitura.
uma memria que no permite a alterao ou remoo dos dados ali gravados,
os quais so impressos em uma nica ocasio.
software de inteligncia artificial (IA) sistema que utiliza algoritmos no numricos para resolver problemas complexos, tambm conhecido como sistema
baseado em conhecimento.
roteamento algoritmo que analisa o trfego de rede entre os pontos que esto
transferindo pacotes para verificar o caminho que eles esto seguindo. Repasse
e roteamento geralmente so realizados por equipamentos chamados roteadores.
script lista dos comandos de criao do banco de dados e de suas tabelas den-
spywares vrus espies que copiam dados ou senhas e os enviam para um ambiente externo sem conhecimento nem consentimento do usurio.
SQL (Structured Query Language ou, literalmente, linguagem de consulta estruturada) linguagem de manipulao de dados que se tornou padro para
tro do SGBD.
SSH (Secure Shell) protocolo que permite conexes seguras entre mquinas Linux.
298
299
informtica
Glossrio
tabela de alocao tabela chamada MBR, que fica armazenada no incio do disco rgido. Essa tabela informa a posio de incio da partio, se est ativa e qual o seu tipo.
tag palavra-chave (relevante) associada a uma informao, que muito comum na linguagem de programao de computador.
Telnet tecnologia muito utilizada, tanto no Linux quanto no Windows, para
acessar um PC remotamente.
template modelo.
TextBox (caixa de texto) componente responsvel por receber as informaes
do usurio e tambm o item mais comum, pois a maioria das entradas de
dados realizada por ele.
UC (Unidade de Controle) principal componente do processador, que identifica as instrues, comanda os outros componentes, controla a memria e todos
os outros dispositivos do computador.
UDP sigla para User Datagram Protocol ou protocolo de datagrama do usurio.
ULA (Unidade Lgica Aritmtica) componente do processador que funciona
como uma calculadora, ou seja, faz clculos matemticos, lgicos e estatsticos,
e no qual os dados so processados.
Ultra-ATA tecnologia que permite que os dados armazenados em discos rgi-
dos, 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.
Ultra-DMA tecnologia que permite que os dados armazenados em discos rgidos, 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.
UML (Unified Modeling Language ou linguagem de modelagem unificada)
do sistema, alm dos processos em execuo e dos dados de PID, usurio etc.
topologia de redes modo como os computadores esto ligados entre si, os equi-
USB sigla significa Universal Serial Bus e se refere a uma tecnologia que veio
vetor definido tambm como matriz unidimensional, uma varivel que pos-
sui vrios dados, acessados por meio de uma posio relativa, seguindo a mesma
regra da concepo e atribuio das variveis.
trilha zero primeira trilha do sistema de arquivos do HD em que o boot est gravado.
trojans nome em ingls dado a um vrus que evoca a histria grega do Cavalo
de Troia, ou spywares.
300
301
informtica
W3C (World Wide Web Consortium ou consrcio da rede mundial de computadores) 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.
WAI (Web Accessibility Initiative ou iniciativa para acessibilidade na rede)
projeto internacional criado por grupos de pessoas dedicadas a desenvolver condies especficas para que todos tenham acesso internet (ambiente, equipamento, navegador, ferramentas etc.).
WAN (Redes Geograficamente Distribudas) redes que se espalham por uma
regio de um estado, por todo o estado, um pas ou o mundo todo. So, portanto, redes de longa distncia. A internet, cujo acrnimo WWW (World Wide
Web ou rede mundial de computadores) a maior WAN do planeta.
MS-DOS com uma interface grfica. H diversas verses Windows 95, 98,
XP, Vista, NT, 2000, 2003, 2008.
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 interface grfica que viriam a se popularizar a partir da dcada de 1990, quando a
rede foi aberta s empresas e se espalhou mundo afora.
guagem de marcao que permite a manipulao dos dados de forma mais precisa. Isso assegura informaes uniformes e independentes de aplicao ou de fornecedor que, dessa forma, podem ser utilizadas em diferentes nveis de aplicao.
302