0% acharam este documento útil (0 voto)
416 visualizações10 páginas

Diferenças Entre Páginas Estáticas e Dinâmicas Na Web

O documento discute as diferenças entre páginas estáticas e dinâmicas na web, a linguagem JavaScript e suas características, como é usada em páginas web e questões de compatibilidade entre navegadores.

Enviado por

felipeturatto
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOC, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
416 visualizações10 páginas

Diferenças Entre Páginas Estáticas e Dinâmicas Na Web

O documento discute as diferenças entre páginas estáticas e dinâmicas na web, a linguagem JavaScript e suas características, como é usada em páginas web e questões de compatibilidade entre navegadores.

Enviado por

felipeturatto
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOC, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 10

DIFERENAS ENTRE PGINAS ESTTICAS E DINMICAS NA

WEB
As pginas estticas usadas desde quando a internet surgiu o programador web utilizava somente HTML
para a criao das pginas, a maneira que eram editadas essas pginas era pouco cansativo pois criava-se o
inde!"tml com o la#out e quando iria postar algo teria que editar o inde e tamb$m recriar o la#out na postagem,
seno os usurios no saberiam o %oi postado e deste modo geraria uma pgina c"eias de lin&s de postagens
antigas!
Atualmente $ mais comum encontrarmos as pginas din'micas pois seu %cil acesso nas edi(es a)uda o
programador web a ter agilidade das tare%as, pois al$m do HTML da pgina, teremos outra linguagem trabal"ando
)undo, como *A+A,-./0T, 0H0, *A+A entre outros e mais um banco de dados como M#,1L 2!!!3, assim as
pginas %icaro mais segura e din'mica e o programador web no teria a necessidade de %azer o que %azia nas
pginas estticas!
LINGUAGEM JAVASCRIPT
JavaScript uma linguagem de script baseada em ECMAScript padronizada pela Ecma
international nas especificaes ECMA-22 e !S"#!EC $22 e atualmente a principal linguagem para
programa%o client-side em navegadores &eb' (oi concebida para ser uma linguagem script com
orienta%o a ob)etos baseada em prot*tipos+ tipagem fraca e din,mica e funes de primeira classe' -ossui
suporte . programa%o funcional e apresenta recursos como fec/amentos e funes de alta ordem
comumente indispon0veis em linguagens populares como Java e C11'
Caractersticas
As seguintes caracter0sticas s%o comuns a todas as implementaes conformantes com o
ECMAScript'
Imperativa e Estruturada
JavaScript suporta os elementos de sinta2e de programa%o estruturada da linguagem C 3por
e2emplo+ if+ &/ile+ s&itc/4' 5ma e2ce%o a 6uest%o do escopo7 o escopo em blocos ao estilo do C n%o
suportado+ em seu lugar JavaScript utiliza escopo a n0vel de fun%o' JavaScript $'8+ entretanto+ suporta
escopo a n0vel de bloco atravs do comando let' Como C+ JavaScript faz distin%o entre e2presses e
comandos' 5ma diferena sint9tica do C 6ue a 6uebra de lin/a termina automaticamente o comando+
sendo o ponto-e-v0rgula opcional ao fim do comando'
DINMICA
Tipagem dinmica
Como na maioria das linguages de script+ tipos s%o associados com valores+ n%o com vari9veis'
-or e2emplo+ a vari9vel 2 poderia ser associada a um n:mero e mais tarde associada a uma string'
JavaScript suporta v9rias formas de testar o tipo de um ob)eto+ incluindo duc;t<ping'
Baseada em objetos
JavaScript 6uase inteiramente baseada em ob)etos' "b)etos JavaScript s%o arra<s associativos+
aumentados com prot*tipos' "s nomes da propriedade de um ob)eto s%o strings7 ob)'2 = $> e ob)?@2@A =
$> s%o e6uivalentes+ o ponto neste e2emplo apenas a:car sint9tico' -ropriedades e seus valores podem
ser adicionadas+ mudadas+ ou deletadas em tempo de e2ecu%o' A maioria das propriedades de um ob)eto
3e a6ueles em sua cadeia de /erana via prot*tipo4 pode ser enumerada usando-se uma estrutura de
repeti%o for'''in' Javascript possui um pe6ueno n:mero de ob)etos padr%o da linguagem como &indo& e
document'
Avalia!o em tempo de e"ecu!o
JavaScript inclui a fun%o eval 6ue consegue e2ecutar em tempo de e2ecu%o comandos da
linguagem 6ue este)am escritos em uma string'
#$NCI%NA&
#un'es de primeira classe
Bo JavaScript as funes s%o de primeira classe+ isto + s%o ob)etos 6ue possuem propriedades e
mtodos+ e podem ser passados como argumentos+ serem atribu0dos a vari9veis ou retornados como
6ual6uer outro ob)eto'
#un'es anin(adas
(unes CinternasC ou Canin/adasC s%o funes definidas dentro de outras funes' S%o criadas cada
vez 6ue a fun%o 6ue as contm 3e2terna4 invocada' Alm disso+ o escopo da fun%o e2terna+ incluindo
constantes+ vari9veis locais e valores de argumento+ se transforma parte do estado interno de cada ob)eto
criado a partir da fun%o interna+ mesmo depois 6ue a e2ecu%o da fun%o interna conclu0da'
#ec(amentos
JavaScript permite 6ue funes anin/adas se)am criadas com o escopo l2ico no momento de sua
defini%o e possui o operador 34 para invoc9-las em outro momento' Essa combina%o de c*digo 6ue pode
ser e2ecutado fora do escopo no 6ual foi definido+ com seu pr*prio escopo durante a e2ecu%o+
denominada+ dentro da ciDncia da computa%o+ fec/amento'
BA)EADA EM *+%T,TI*%)
*rot-tipos
JavaScript usa prot*tipos em vez de classes para o mecanismo /erana' E poss0vel simular muitas
caracter0sticas de orienta%o a ob)etos baseada em classes com prot*tipos'
#un'es e m.todos
Fiferente de muitas linguagens orientadas a ob)etos+ n%o /9 distin%o entre a defini%o de uma
fun%o e a defini%o de um mtodo no JavaScript' A distin%o ocorre durante a c/amada da fun%oG a
fun%o pode ser c/amada como um mtodo' Huando uma fun%o c/amada como mtodo de um ob)eto+
a ;e<&ord t/is da fun%o associada .6uele ob)eto via tal invoca%o'
USO EM PGINAS WEB
" uso prim9rio de JavaScript escrever funes 6ue s%o embarcadas ou inclu0das em p9ginas
IJMK e 6ue interagem com o Modelo de "b)eto de Focumentos 3F"M4 da p9gina' Alguns e2emplos
deste uso s%o7
abrir uma nova )anela com controle program9tico sobre seu taman/o+ posi%o e atributosG
validar valores de um formul9rio para garantir 6ue s%o aceit9veis antes de serem enviados ao
servidorG
mudar imagens . medida 6ue o mouse se movimenta sob elas'
-elo fato do c*digo JavaScript rodar localmente no navegador do usu9rio+ e n%o em um servidor
remoto+ o navegador pode responder a tais aes rapidamente+ fazendo uma aplica%o mais responsiva'
Alm disso+ o c*digo JavaScript pode detectar aes de usu9rio 6ue o IJMK sozin/o n%o pode+ tais como
teclas pressionadas individualmente' Aplicaes como Lmail tomam vantagem disso7 muito da l*gica da
interface do usu9rio escrita em JavaScript+ e o JavaScript envia re6uisies de informa%o+ tais como o
conte:do de um correio eletrMnico+ para o servidor' A tendDncia mais ampla de programa%o em A)a2
e2plora de maneira similar este ponto forte'
5ma JavaScript engine 3tambm con/ecida como interpretador JavaScript ou uma implementa%o
JavaScript4 interpreta c*digo fonte JavaScript e o e2ecuta de forma ade6uada' A primeira implementa%o
JavaScript foi criada por Nrendan Eic/ na Betscape Communications Corporation+ para o Bavegador
Betscape' A implementa%o+ nomeada SpiderMon;e<+ implementada em C e vem sendo atualizada para
conformar com a edi%o O do ECMA-22' A implementa%o P/ino+ criada primariamente por Borris
No<d 3e2-empregado da BetscapeG agora no Loogle4 uma implementa%o de JavaScript em Java' P/ino+
como SpiderMon;e<+ conformante com a terceira edi%o do ECMA-22'
-or ser o JavaScript a :nica linguagem 6ue a maioria dos navegadores populares suportam+ tem se
tornado uma linguagem alvo para muitos frame&or;s em outras linguagens+ a despeito do fato de n%o ter
sido plane)ado para tal' B%o obstante as limitaes de desempen/o inerente . sua natureza din,mica+ a
crescente velocidade das implementaes JavaScript tem feito da mesma uma pr9tica linguagem
intermedi9ria'
Compatibilidade
J9 6ue JavaScript roda em ambientes vari9veis+ uma parte importante do teste e depura%o de seu
c*digo consiste na verifica%o de compatibilidade entre navegadores'
As interfaces F"M para a manipula%o de p9ginas &eb n%o s%o parte do padr%o ECMA+ ou do
pr*prio JavaScript' "ficialmente+ s%o definidas por um esforo de padroniza%o da QOCG na pr9tica+
implementaes de navegadores diferem do padr%o de uma para as outras+ e nem todos navegadores
e2ecutam JavaScript'
-ara lidar com essas diferenas+ programadores JavaSCript com fre6uDncia tentam escrever
c*digos 6ue conformam com o padr%o comum a maioria dos navegadoresG n%o sendo poss0vel isso+
tentam escrever de maneira ad-/oc um c*digo 6ue verifi6ue a presena de certos recursos e 6ue se
comporte de maneira ade6uada caso tais recursos n%o este)am dispon0veis' Em alguns casos+ dois
navegadores podem ambos implementarem uma funcionalidade com comportamentos diferentes+ e
programadores podem ac/ar pr9tico detectar 6ual navegador est9 rodando e mudar o comportamento de
seus scripts para se ade6uar a isso' -rogramadores podem tambm usar bibliotecas ou ferramentas 6ue
abstraem tais diferenas entre navegadores'
Alm disso+ scripts podem n%o funcionar para alguns usu9rios' -or e2emplo+ um usu9rio pode7
5sar um navegador antigo ou raro com suporte F"M incompleto ou incomum'
5sar um navegador de um -FA ou telefone m*vel 6ue n%o est9 apto a e2ecutar JavaScript'
Jer a e2ecu%o do JavaScript desabilitada por normas de segurana'
-ara suportar tais usu9rios+ programadores &eb tentam criar p9ginas 6ue se)am robustas a agentes
6ue n%o suportem o JavaScript da p9gina' Em particular+ uma p9gina deve funcionar a despeito das
funcionalidades e2tras 6ue um JavaScript provD' 5ma abordagem alternativa 6ue muitos ac/am prefer0vel
a p9gina se desenvolvida por primeiro a partir de tecnologias b9sicas 6ue funcionem em todos os
navegadores+ e ent%o aprimor9-la para os usu9rios 6ue possuam JavaScript'
Acessibilidade
Assumindo 6ue o usu9rio n%o ten/a desabilitado sua e2ecu%o+ pode-se utilizar JavasScript do
lado cliente para mel/orar a e2periDncia de um usu9rio como deficiDncia f0sica ou visual'
Keitores de tela utilizados por pessoas cegas ou com vis%o parcial podem detectar a presena de
JavaScript e dessa forma acessar e ler o F"M da p9gina depois 6ue seus scripts foram e2ecutados' Bestes
casos recomenda-se 6ue o IJMK se)a o mais conciso+ naveg9vel e rico semanticamente poss0vel+ tendo a
p9gina scripts ou n%o' B%o se recomenda 6ue o c*digo JavaScript de uma p9gina se)a totalmente
dependente do eventos provenientes do mouse )9 6ue usu9rios 6ue n%o conseguem ou optam por n%o usar
o mouse n%o estar%o aptos a col/er os benef0cios de tal c*digo' Fa mesma forma+ embora /<perlin;s e
&ebforms possam ser navegados e operados do teclado+ JavaScript voltado para acessibilidade n%o deve
re6uerer um teclado para acessar tais eventos' JavaScript conta com eventos independentes do dispositivo
de usu9rio tais como onfocus e onc/ange 6ue s%o mais recomendados na maioria dos casos'
B%o se recomenda utilizar JavaScript de um )eito 6ue se)a confuso ou desorientador para 6ual6uer
usu9rio da internet' -or e2emplo+ usar JavaScript para alterar ou desabilitar a funcionalidade normal de
um navegador+ tal como mudar a forma com 6ue o bot%o direito ou o evento de atualiza%o funcionam+
deve ser evitado' Fa mesma forma+ eventos de interrup%o 6ue o usu9rio pode n%o estar ciente reduzem a
sensa%o de controle do usu9rio+ assim como scripts inesperados 6ue mudam o conte:do da p9gina'
(re6uentemente o processo de fazer p9ginas &eb comple2as t%o acess0veis 6uanto poss0vel se
transforma em um problema n%o trivial+ onde certas decises s%o assunto de debate e opini%o' Entretanto+
tecnologias assistivas est%o constantemente evoluindo e novas recomendaes e informaes relevantes
vem sendo continuamente publicadas na &eb'
)egurana
JavaScript e o F"M representam uma potencialidade para programadores maliciosos escreverem
scripts para rodarem em um cliente via &eb' Bavegadores s%o pro)etados para conter este risco de duas
maneiras' A primeira 6ue scripts s%o rodados em uma sandbo2 na 6ual s* podem e2ecutar aes
relacionadas . internet+ n%o tarefas de programa%o de prop*sito geral como criar ar6uivos' A segunda
6ue scripts s%o limitados pela regra da mesma origem7 scripts de um &eb site n%o tDm acesso a
informaes como nomes de usu9rio+ sen/as ou coo;ies enviados de outro site' A maioria dos bugs em
JavaScript relacionados . segurana s%o brec/as de uma das regras'
/ulnerabilidades inter0sites
5m problema comum relacionado . segurana a escrita de scripts inter-sites+ ou RSS+ uma
viola%o da regra da mesma origem' Jais vulnerabilidades ocorrem 6uando um atacante est9 apto a causar
em um site alvo+ como um site de banco+ a inclus%o de um script malicioso na p9gina &eb apresentada .
v0tima' " script neste e2emplo pode ent%o acessar a aplica%o do banco com privilgios da v0tima+
potencialmente revelando informaes secretas ou transferindo din/eiro sem a autoriza%o da v0tima'
Alguns navegadores incluem prote%o parcial contra ata6ues RSS refletidos+ no 6ual o atacante
fornece uma 5PK incluindo o script malicioso' Bo entanto+ mesmo usu9rios destes sites est%o vulner9veis
a outros ata6ues RSS+ como a6ueles onde o c*digo malicioso guardado em um banco de dados' Apenas
o correto desen/o de aplicaes &eb no servidor pode prevenir inteiramente ata6ues RSS'
Sulnerabilidades RSS tambm podem ocorrer por causa de erros de implementa%o por parte de
programadores de navegadores'
"utra vulnerabilidade inter-sites a falsifica%o de re6uisi%o inter-sites ou CSP(' Bo CSP(+ o
c*digo no site de um atacante faz com 6ue o navegador da v0tima tome aes n%o dese)adas pelo usu9rio
em um site alvo 3como transferDncia de din/eiro em um banco4' Ela funciona por6ue+ se o site alvo conta
apenas com coo;ies para autenticar re6uisies+ ent%o re6uisies iniciadas pelo c*digo no site do
atacante levar%o as mesmas credenciais leg0timas de login 6ue as re6uisies iniciadas pelo usu9rio' Em
geral a solu%o para CSP( re6uerer um valor de autentica%o em um campo &ebform escondido+ e n%o
somente nos coo;ies+ para autenticar 6ual6uer re6uisi%o 6ue possa ter efeitos duradouros' Serificar o
cabeal/o do IJJ- Peferrer tambm pode a)udar'
@Se6uestro JavaScript@ um tipo de ata6ue CSP( no 6ual uma tag TscriptU no site do atacante
e2plora uma p9gina no lado da v0tima 6ue retorna informa%o privada tal como JS"B ou JavaScript'
Solues poss0veis incluem re6uerer um to;en de autentica%o nos par,metros -"SJ e LEJ para
6ual6uer resposta 6ue retorne um JS"B privado 3mesmo 6ue n%o ten/a efeitos colaterais4G utilizar -"SJ
e nunca LEJ para re6uisies 6ue retornem um JS"B privadoG e modificar a resposta de forma 6ue n%o
possa ser usada via uma tag TscriptU 3atravs+ por e2emplo+ de um &rapping de um JS"B em um
coment9rio JavaScript4'
PHP
-I- 3um acrMnimo recursivo para @-I-7 I<perte2t -reprocessor@+ originalmente -ersonal Iome
-age4 uma linguagem interpretada livre e utilizada para gerar conte:do din,mico na Qorld Qide Qeb'
A linguagem surgiu em meados de $VVW+ como um pacote de programas CL! criados por Pasmus
Kerdorf+ com o nome -ersonal Iome -age Jools+ para substituir um con)unto de scripts -erl 6ue ele
usava no desenvolvimento de sua p9gina pessoal' Em $VV8 foi lanado o novo pacote da linguagem com
o nome de -I-#(!+ trazendo a ferramenta (orms !nterpreter+ um interpretador de comandos SHK' Mais
tarde+ Xeev Suras;i desenvolveu o analisador do -I- O 6ue contava com o primeiro recurso de orienta%o
a ob)etos+ 6ue dava poder de alcanar alguns pacotes+ tin/a /erana e dava aos desenvolvedores somente
a possibilidade de implementar propriedades e mtodos' -ouco depois+ Xeev e Andi Lutmans+
escreveram o -I- W+ abandonando por completo o -I- O+ dando mais poder . m96uina da linguagem e
maior n:mero de recursos de orienta%o a ob)etos' " problema srio 6ue apresentou o -I- W foi a cria%o
de c*pias de ob)etos+ pois a linguagem ainda n%o trabal/ava com apontadores ou /andlers+ como s%o as
linguagens Java+ Pub< e outras' " problema fora resolvido na vers%o atual do -I-+ a vers%o Y+ 6ue )9
trabal/a com /andlers' Caso se copie um ob)eto+ na verdade copiaremos um apontador+ pois+ caso /a)a
alguma mudana na vers%o original do ob)eto+ todas as outras tambm sofrem a altera%o+ o 6ue n%o
acontecia na -I- W'
Jrata-se de uma linguagem e2tremamente modularizada+ o 6ue a torna ideal para instala%o e uso
em servidores &eb' Fiversos m*dulos s%o criados no reposit*rio de e2tenses -ECK 3-I- E2tension
Communit< Kibrar<4 e alguns destes m*dulos s%o introduzidos como padr%o em novas verses da
linguagem' E muito parecida+ em tipos de dados+ sinta2e e mesmo funes+ com a linguagem C e com a
C11' -ode ser+ dependendo da configura%o do servidor+ embarcada no c*digo IJMK' E2istem verses
do -I- dispon0veis para os seguintes sistemas operacionais7 Qindo&s+ Kinu2+ (reeNSF+ Mac "S+ "S#2+
AS#W>>+ Bovell Bet&are+ P!SC "S+ A!R+ !P!R e Solaris'
Construir uma p9gina din,mica baseada em bases de dados simples com -I-+ 3em parte+ vale
lembrar4+ este provD suporte a um grande n:mero de bases de dados7 "racle+ S<base+ -ostgreSHK+
!nterNase+ M<SHK+ SHKite+ MSSHK+ (irebird+ etc'+ podendo abstrair o banco com a biblioteca AF"db+
entre outras' A Qi;ipdia funciona sobre um soft&are inteiramente escrito em -I-+ usando bases de
dados M<SHK7 o MediaQi;i'
-I- tem suporte aos protocolos7 !MA-+ SBM-+ BBJ-+ -"-O+ IJJ-+ KFA-+ RMK-P-C+ S"A-' E
poss0vel abrir soc;ets e interagir com outros protocolos' E as bibliotecas de terceiros e2pandem ainda
mais estas funcionalidades' E2istem iniciativas para utilizar o -I- como linguagem de programa%o de
sistemas fi2os' A mais not9vel a -I--LJZ' Jrata-se de um con)unto do -I- com a biblioteca LJZ+
portada do C11+ fazendo assim soft&ares inter-operacionais entre Qindo&s e Kinu2' Ba pr9tica+ essa
e2tens%o tem sido muito pouco utilizada para pro)etos reais'
*+INCI*AI) CA+ACTE+1)TICA)
A linguagem -I- uma linguagem de programa%o de dom0nio espec0fico+ ou se)a+ seu escopo se
estende a um campo de atua%o 6ue o desenvolvimento &eb+ embora ten/a variantes como o -I--LJZ'
Seu prop*sito principal de implementar solues &eb velozes+ simples e eficientes' Caracter0sticas7
Selocidade e robustez
Estruturado e orienta%o a ob)etos
-ortabilidade - independDncia de plataforma - escreva uma vez+ rode em 6ual6uer lugar
Jipagem din,mica
Sinta2e similar a C#C11 e o -erl
"pen-source
/etores e matri2es
"s vetores e matrizes em -I-+ diferente do 6ue ocorre em C#C11 e -ascal+ uma estrutura
din,mica+ o 6ue pode facilitar muito o trabal/o do programador'
5m e2emplo7
T[p/p

\vet>$ = arra<34G
\vet>$?A = @Sistemas operacionais@G
\vet>$?A = @Compiladores@G
\vet>$?A = @Nancos de dados@G

\vet>2 = arra<3$+ 2+ O+ W+ Y4G

\vet>O = arra<3 > =U >+ 2 =U O+ $> =U @item $>@4G

for 3\i = >G \i T count3\vet>$4G \i114 ]
ec/o \vet>$?\iA ' @Tbr #U@G
^

[U
" e2emplo acima demonstra trDs maneiras diferentes de declarar vetores'
*3* 4
Em )un/o de 2>>W foi lanada a vers%o Y do -I-+ introduzindo um novo modelo de orienta%o a
ob)eto+ incluindo a reformula%o dos construtores e adi%o de destrutores 3ver e2emplo conte2tualizado
em ane2o4+ visibilidade de acesso+ abstra%o de ob)eto e interfaces de ob)etos'
" tratamento de ob)etos do -I- foi completamente reescrito+ permitindo um desempen/o mel/or
e mais vantagens' En6uanto na vers%o anterior era preciso muito esforo para atender . orienta%o a
ob)etos e aos padres de pro)ectos 3alguns n%o eram poss0veis4+ o -I- Y veio para sanar essa deficiDncia'
Ainda sofre nesse sentido+ contudo+ por problemas devido a ser uma linguagem de tipagem fraca'
Indu!o de tipo
Besse sentido+ foi adicionada uma caracter0stica c/amada de indu%o de tipo+ de acordo com a
6ual podemos ter uma certa tipagem 6uando passamos ob)etos aos par,metros de uma fun%o 3ou
mtodo4+ algo inconceb0vel na vers%o anterior' Ser e2emplo conte2tualizado em ane2o'
/isibilidade
A visibilidade de uma propriedade ou mtodo pode ser definida com os seguintes modificadores
de acesso7 public+ protected ou private' !tens declarados como p:blicos podem ser acessados pelo ob)eto
3inst,ncia da classe4' Membros protegidos est%o acess0veis .s classes fil/as 3/erdadas4' A visibilidade
privada limita a apenas a classe 6ue define o atributo ou mtodo' Ser e2emplo conte2tualizado em ane2o'
*%&IM%+#I)M%
*olimor5ismo *aram.trico
Bo polimorfismo paramtrico+ um mesmo ob)eto pode ser utilizado uniformemente como
par,metro em diferentes conte2tos sem necessidade de alteraes' 5m mtodo 6ue e2ibe polimorfismo
paramtrico 3tambm c/amada de mtodo genrico4 permite 6ue o tipo do seu argumento se)a
determinado por um par,metro de tipo impl0cito ou e2pl0cito+ e2ecutando uma mesma opera%o+
independente do tipo do argumento' " -I- n%o re6uer 3ou suporta4 a defini%o de tipo e2pl0cita na
declara%o de vari9veis7 o tipo de uma vari9vel determinado pelo7
conte2to em 6ue a vari9vel utilizada' !sto significa 6ue+ se vocD atribuir um valor string para a
vari9vel \var+ \var se torna uma string
Se vocD ent%o atribuir um valor inteiro para \var+ ela se torna um inteiro' -or isso o -I- n%o adota
este tipo de polimorfismo+ pois n%o possui par,metros genricos'
*olimor5ismo por Inclus!o
Bo polimorfismo por inclus%o um ob)eto pode ser visto como pertencendo a diferentes classes 6ue
n%o precisam ser dis)untas' " -I- adota esse tipo de polimorfismo+ pois uma linguagem orientada a
ob)eto 6ue permite recursos de /erana'
*olimor5ismo por Coer!o
" -I- tambm suporta o polimorfismo por coer%o+ no 6ual a linguagem dispe de uma opera%o
sem,ntica para converter um argumento para um tipo esperado por uma fun%o+ em uma situa%o 6ue de
outra forma resultaria em um erro de tipo'
VETORES E MATRIZES
Jemos os seguintes tipos de dados b9sicos 7 inteiros+ reais+ l*gicos e literais' -ara trabal/ar com
con)untos de vari9veis do mesmo tipo b9sico+ usamos o conceito de matriz'
Conceito e6uivalente ao da matem9tica'
Matri2
Matriz um con)unto de vari9veis+ cada uma com um valor associado+ como se fossem vari9veis
simples+ mas todas compartil/am o mesmo nome' _ndices s%o utilizados para referenciar os elementos
deste con)unto'
E2emplo7
um con)unto A de O elementos representado por A$ A2 AO onde A o nome do con)unto e a
identifica%o dos elementos individuais feita pelo nome do con)unto seguido do 0ndice' Kogo+ A2 o
segundo elemento'
Nota!o Matri2es
Jipo nome`vari9vel?dimens%o$Aa?dimens%oBAG
E2emplo7 S?OA uma matriz com uma dimens%o de taman/o O'
E2emplo7 M?O+OA uma matriz de duas dimenses+ respectivamente O lin/as e O colunas'
/etores
Setores s%o matrizes 6ue possuem somente uma dimens%o' -odem ser vistos como listas de elementos
do mesmo tipo' "peraes principais sobre vetores7
leitura
escrita
soma dos elementos
ordena%o
Keitura de um vetor v?OA7
para i = > at O
leia3 v?iA 4G
fim para
Escrita de um vetor v?OA7
para ) = > at O
escreva3 v?)A4G
fim para
Soma dos elementos de um vetor v?OA7
soma = >
para i = > at O
soma = soma 1 v?iAG
fim para
C$IDAD%6 a varia!o do ndice do vetor deve 5icar dentro dos limites da dimens!o 7ue o ndice
representa8
E2emplo7 Feclara uma matriz de Y lin/as e $> colunas no total de Y> posies' Keia estas posies e
imprima o valor na tela'
/etor do Tipo de Dado Caracter
-ara armazenar o nome de uma pessoa+ por e2emplo+ se deve criar uma estrutura de dados composta
/omogDnea do tipo de dado caracter' Jodo nome consiste em um con)unto de caracteres 3letras+ caracteres
especiais e at d0gitos numricos+ se assim os pais desta pessoa dese)arem4'
Especificamente para este tipo de vetor+ 6ue envolve um con)unto de caracteres+ estabelecida uma
e2press%o 6ue a caracteriza facilmente+ sendo est9 e2press%o importante na 9rea de !nform9tica7 string ou
simplesmente cadeia de caracteres'
A sinta2e a seguir declara um vetor de caracteres com a capacidade de armazenar at $> caracteres+ sendo
esta declara%o representada graficamente ap*s a instru%o de cria%o deste vetor c/amado nome'
nome 6 vetor 9>88V: de caracter
nome
A B A C K A P A '
> $ 2 O W Y 8 b V
A representa%o acima mostra um vetor de dez elementos+ isto + tem a capaciadade de $> vari9veis do
tipo caracter agrupadas em um idenmtificador+ nome + independentes por sua posi%o dentro do vetor+
indicadas por seu 0ndice 6ue varia de zero at V 3nove4'
"bserve 6ue o caracter espao entre a palavra ABA e CKAPA 3no 0ndice O4 consiste em um :nico
caracter especial 3espao em branco4+ ocupando sua respectiva posi%o no vetor nome' -ara acessar cada
uma de suas posies ser9 usado o identificador do vetor+ seguido do valor de seu 0ndice entre colc/etes'
Jodo conte:do estudado at o momento n%o solicitava a cria%o de um vetor de caracteres para o
armazenamento de nomes+ frases e e2presses de caracteres importantes para solu%o de seu problema
computacional' !sso acontece somente nesta ferramenta de aprendizagem inicial ao desenvolvimento de
algoritmos+ 6ue se tornaram programas computacionais traduzidos corretamente para uma linguagem de
programa%o'
Bestas linguagens fundamental a correta e completa declara%o do recurso 6ue seu futuro programa ir9
manipular em mem*ria+ sendo relevante compreender o 6ue o Sisualg cria+ mas esconde de n*s iniciantes
nesta 9rea fundamental para !nform9tica como um todo 3sub9rea da -rograma%o4'
Bo entanto+ a assimila%o deste conte:do sobre estrutura de dados permitir9 6ue os vetores de tipo
caracter possam ser declarados de forma e2plicita no pr*2imos algoritmo 6ue ten/am a necessidade de
trabal/ar com as string no pr*prio Sisualg+ agilizando a aprendizagem sobre estas estruturas de dados'
Se for criada uma vari9vel caracter com identificador de nome usando a sinta2e simples estudada at o
momento+ esta vari9vel s* ter9 a capacidade da armazenar uma letra como sendo o nome de uma pessoa'
-ortanto+ ser9 necess9rio criar um vetor do tipo caracter com taman/o coerente com o armazenamento
dese)ado'
algoritmo cnome de pessoad
;; )ntese
;; %bjetivo6 arma2ena o nome de uma pessoa
;; Entrada6 < nome
;; )ada6 a primeira letra do nome in5ormado pelo usu=rio
;; Declara'es
var
au2iliar 6 inteiro
nome 6 vetor ?>88VA de caracter
inicio
au2iliar >
escreva3cFigite o nome de uma pessoa ou ponto final para terminar7 c4
repita
leia 3nome9au"iliar:4
au2iliar au2iliar 1 $
ate 3nome?au2iliar - $A = c8d ou au2iliar = $>4
escreva3nome9>:4
5imalgoritmo
Beste e2emplo o usu9rio digitar9 uma letra de cada vez+ pressionando a tecla EBJEP ap*s cada letra
digitada+ sendo todas elas armazenadas no vetor nome' -ara o e2emplo+ onde o usu9rio informe o nome
P5!+ cada letra ser9 armazenada em uma posi%o do vetor+ estando o P no 0ndice >+ ou se)a+ no vetor
nome?>A' A letra 5 estar9 no nome?$A e a letra ! em nome?2A' Caso o usu9rio digite o caracter especial
ponto final 384 o algoritmo terminar9 sua e2ecu%o de leitura e mostrar9 somente o primeiro caracter do
nome informado'

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy