Você está na página 1de 4

Introduoprogramao/Estruturasdemanipulaodedados

Origem:Wikilivros,livrosabertosporummundoaberto.
<Introduoprogramao

Comojfoireferidoelgico,aslinguagensdeprogramaotmcoisasemcomum.Umadelassoasestruturasdecontrole.EstruturasdeControlesodefinidas
comosendoabasedalgicadaprogramaoepodemserdedoisnveis:diretoouindireto(complexo).Paratermosumaideiadadiferenaentreumcontrole
diretoeumcontroleindireto,apresentoaseguirdoisdilogosrepresentativosdeduassituaesdocotidiano:

Pedro"OndefosteMiguel?"
Miguel"Fuilojacomprarroupa."

Indivduo"OndepossoarranjarumacertidoAR53?"
Inspetor"Temquelevarasuaidentificaoaoguich,pedirumimpressoGHANORMALcarimbadopara3meses.Apsaconclusodaescrituraterqueaguardaratquesejachamadopelas

Analisandoosdoiscasos,rapidamenteconclumosquearespostaobtidanoprimeirodiretaebemmaissimplesquenosegundo.Ora,sequisesseconverterestas
situaesparaumasituaoparecidanocomputador,poderamosconstatarquebastavanosumapginadeumcdigosequenciadoparaocomputadorprocedera
recriaodocontedodaprimeirasituao.Omesmojnoseverificanosegundo.Normalmenteparaestetipodecasos,oprogramadorutilizapeas
fundamentaischamadasfunes(doinglsfunction)queretratamcadaumnicoacontecimentodasituao,havendoassimligaesentreelesdependendodos
resultadosobtidos.Funessoretratadasmaisfrente.

PensoquecomestesdoisexemplosoleitorjentendebemoqueumAlgoritmodiretoeumAlgoritmocomplexo.

ndice
1 Estruturasbsicas
1.1 Variveiseconstantes
1.2 Instrues
2 Estruturasdecontrole
2.1 IF
2.2 ELSE
2.3 SWITCH
2.4 FOR
2.5 While
3 Funes
4 Arrays
5 Operaesaritmticas
5.1 Operaesaritmticas
5.2 Operaescomplexas
6 Concluso

Estruturasbsicas

Qualquerprogramatemquefazeralgumacoisa(nemquesejaenviarumsinalbip)senonoumprograma,ouseja,eletemqueapresentarcontedo.Assim,
comoapresentacontedo,vai"alterar"estadosdentrodocomputador,sendoque,oestadodeumadaspeasquevaiinevitavelmentesealteraramemria
interna.inevitvelumprogramanose"alojar"namemriadocomputador,assim,oprogramaprecisadeumespaofsiconamemriaeparaissoterqueo
requisitar.dissoqueiremosfalaraseguir.

Variveiseconstantes

UmavarivelumaexpressoquevariaenormalmenterepresentadoporumaincgnitaX,eumaconstanteumaexpressoquenosealtera(onmerode
Avogadro,opi,onmerodeNeper)quepodeserrepresentadoporumaletra.

Nosprogramas,variveissotodasasexpressesquepodemounovariar,assimcomotambmpodemserconstantes.Umacoisabvia:Constantesnopodem
servariveis!

NafunoseguinteYassumeodobrodetodososvaloresdeX:
Y=2X>Nestafuno,XvariaporissoYumavarivel

NaseguintefunoYassumesempreovalor2:
Y=2>NestafunoYnovariaeporissoconstante.

Aquiestpatenteadiferenadeumafunovariveleumafunoconstanteemmatemtica.

TransportandoanoodeVariveleConstanteparaaprogramao,apresentoagoradoistrechosdecdigoemPHPeC++:

//Vamosrepresentarumtextocomoumavarivelrepresentadaporp(sintaxedePHP):
<?php
$p="OlMundo!";
//Agoravouapresentlanatela
echo$p;
?>

Nocasoacima,umavarivelumtextoquefoiguardadoemmemria,representadoporp.
//Representoagoraum"OlMundo!"comoumaconstante(sintaxedoC++):
#include<iostream.h>;
intmain(){
cout<<"OlMundo!";
return0;
}

Noseassustesenoentendeunadadoquesepassoualiemcima.Aqui"OlMundo!"foiumaconstanteenoumavarivel,poiselanofoiguardadaem
memria,masimpostapelainstruocoutdiretamente.

Instrues

Asinstruessopequenoscomandosqueditamaoprogramaoquefazercomdeterminadodado.Elaspodemguardarinformao,apresentarinformao,
aguardaruminput,etc.

AquiapresentamosalgumasinstruesquesomaiscomunsassimcomoasuaimplementaonoC++ePHP:

Linguagem
Instruo Descrio PHP
C++

Mostrardadosna
MOSTRAR echo()print() cout<<
tela

Requisitarum $_GET[](Nousadodeforma
INPUT cin.get()
input direta)

Estruturasdecontrole

IF

IFomesmoqueSEeusadoportodasaslinguagensdeprogramaoporseraestruturamaissimplesqueexiste.Asuaimplantaorepresentaolanamentode
umbooleanoVerdadeiroouFalso.

IFisto
DOaquilo

ELSE

ELSEusadocomoumacrscimodeIF,levandoaquetodososdadosretornadoscomoFALSOemIFsejamcontroladosporesteELSE.

IFisto
DOaquilo
ELSEoutracoisa

SWITCH

OSWITCHvistocomoumasubstituiodeIFELSEquandoexistemmaisde2opesaseremcontroladas.

SWITCHvarivel
CASEargumento1:cdigocorrespondente
CASEargumento2:cdigocorrespondente
CASEargumento3:cdigocorrespondente

Nestecaso,SWITCHirprocurarqualoargumentoquevarivelcontmeassimescolherqualdosCASEcorrer.

FOR

FORumloopqueaconteceenquantodeterminadoargumentonosetornarverdadeiro.

X=1
FORX<=10
X=X+1

Podesermaisdifcildesvendarestecdigo(principalmenteseoleitorformatemticoeficarperplexocomalinha"X=X+1"),masoqueestescritoaliem
cimaque"enquantoXnoforiguala10,ainstruoFORvaisemprevoltaraoincioesomar/incrementar1aovalordeX".

Asadanoprocessamentoaseguinte:

X=1
X=2
X=3
X=4
X=5
X=6
X=7
X=8
X=9
X=10

While
WHILE,estruturautilizadaemgrandepartedaslinguagensdeprogramaoatuais,especificaumaaoenquantodeterminadacondioforverdadeira.Observeo
exemploescritoempascal.

while(x<>z)do
begin
writeln('QualovalordeZ?')
readln(z)
end;

Nocdigoacima,enquantoovalordeZfordiferentedoestabelecidoparaX,serpedidoaousurioqueentrecomovalordeZ.

Funes

Funessopequenostrechosdecdigoindependentesquesoespecializadosatratardeterminadotipodedadosdentrodeumprograma.Hlinguagens,comoo
CouoC++,questrabalhamcomFunes,outras,comoaslinguagensdescript(PHP,Python,Perl,etc),quetrabalhamcomfunesecomcdigosoltoem
sequncia.

Exemplodeimplementaodefunes:

FUNCTIONnome_da_funo(argumento1,argumento2,argumentox,...)
Cdigo
RETURNdadosaseremretornadosaocdigoprincipal

Exemplodaimplementaodefunesnumcdigo:

FUNCTIONmultiplicador(numero)
X=10E21
Y=numero*X
RETURNY
ENDFUNCION

GETnumero
IFnumero>=1
GOTOmultiplicador
SHOWY
ENDIF
ELSE
SHOW"Nonmerointeiro"
ENDELSE

Nestecdigo,nsconhecemosopoderdasfunes.Nocasoacima,pedidoaoutilizadoraintroduodeumnmero.Depoisdisso,ocomputadoranalisaseo
nmerointeiro,esefor,elechamaafunomultiplicador,retornandoumavarivelYcontendoonmerointroduzidoanteriormentemultiplicadopeloexpoente
22.Sepelocontrrio,onmerointroduzidonoforinteiro,ocomputadorlanaumamensagemdeerro"Nonmerointeiro".

Arrays

OsArrayssosimplesestruturasdedados,denominadascomovectoroulistaseforemarraysunidimensionais,oumatrizseforempolidimensionais.Oque
acontecequenumaArrayosdadossolistadoseordenadossegundopropriedadesouvariveisquetentamosdominar.

Nocasoseguinteapresentamosumaarrayordenadacomdadossobreoestadodeumprogramaopensource:

ARRAY("verso"=>ARRAY("alpha"=>0.1
"beta"=>0.5
"final"=>0.9
)
FIMARRAY;
"SO"=>ARRAY("win"=>"Windows"
"uni"=>"UNIXLike"
"mac"=>"MacOS"
)
FIMARRAY;
)
FIMARRAY;

Aosdadosdescritoscomo"verso"e"SO"chamamosChaveetodososoutrossoValores.Entoatodoumvalorapontaumachave.

ARRAY(Chave=>Valor);

Operaesaritmticas

Emqualquerlinguagem,existeapossibilidadedesecalcularemexpressesalgbricasaritmticas,segundoossinaisconvencionais(+,,*,e/),logoqualquer
expressoquesejanumricasecomportacomodadanamatemticaelementar.Porm,possvelusarseexpressesalfanumricasparaseprocederaclculos
maiscomplexos(matriaemquenoiremosentrarpoisaquiaslinguagensdiferemnoseucomportamentoalgumasaceitam,outrascalculamovalor
hexadecimalouASCIIdocaracter,outrasformamstrings(frases),etclevandoassimaumlequeinfinitodepossibilidadesdeprogramao,dependendodas
necessidadesprevistasporcadatipodelinguagens).

Operaesaritmticas

Podemossomarqualquerexpressoalgbricadoseguintemodo:

2+2=A
MOSTRARA

Obviamentequeiramosobter4comoresultadomostrado.
Analogamente,possvelcalcularcomqualquercalculadormatemticabsica:

4*5=B
MOSTRARB//resultadode20

2/3=C
MOSTRARC//resultadode0,(6)

Umavezvistoisto,poderamospensarqueseriapossvelcalcularexpressescomplexas

3*5+2/35=D
MOSTRARD

Oqueobtemosacimapodeserambguo,resultadodamaneiracomoaslinguagensdeprogramaointerpretamaexpressocalcularaexpressoporsequncia
lgicamatemticaouporsequnciaapresentada.Atualmentetodasaslinguagensmaiscomunsseguemasequncialgicamatemticaparacalcularemaexpresso
eassimoresultadoobtidoser10,(6)eno0,(6).

Operaescomplexas

Comoserqueocomputadorsecomportacomosclculosqueusamnmerosdepontoflutuanteounmerosexponenciais?

Damesmamaneiracomonamatemtica,ocomputadortratardearredondarcasasdecimais(algumaslinguagenscomoPHPnecessitamdafunoround()para
arredondarbemmatematicamente)edecalcularpotncias,tudoistoparachegaraumresultadocomumnmerorealaproximadoaoquesedizmatematicamente
verdadeiro.

Pontoflutuante:
0,512+2/3=1,178(6)//comquantascasasdecimaisoleitorquiser
eocomputadorpermitir

Concluso

Estassoasinstruesmaisbsicasusadasportodasaslinguagensdeprogramaoexistentes,exatamenteporserembsicasesimples.Semelas,umalinguagem
noeracreditadaeapresentademasiadoslimitesparaserconsideradaumalinguagemdeprogramaoracional.

Obtidoem"https://pt.wikibooks.org/w/index.php?title=Introduo__programao/Estruturas_de_manipulao_de_dados&oldid=423460"

Categoria: Livro/Introduoprogramao

Estapginafoimodificadapelaltimavez(s)21h43minde13dejulhode2016.
EstetextodisponibilizadonostermosdalicenaCreativeCommonsAtribuioCompartilhamentopelamesmaLicena3.0Unportedpodeestarsujeitoa
condiesadicionais.ConsulteasCondiesdeUsoparamaisdetalhes.

Você também pode gostar