Professional Documents
Culture Documents
PROF.CARLOSGOMES
Lgicadeprogramao
Lgicadeprogramaoatcnicade encadearpensamentosparaaEngir determinadoobjecEvo.
SEQUNCIALGICA
asequnciadepassosexecutados paraaEngirdeterminadoobjecEvoou soluodeumproblema.
LINGUAGENS
NATURAIS: Linguagem Humana (usocomum) FORMAIS: Desenvolvidasde formaarEcial (nosonaturais)
TEORIADASLINGUAGENSFORMAIS EDOSAUTOMATOS(LFA):
Instrumentosde reconhecimentodesta linguagem!
LINGUAGENSDEPROGRAMAO
TIPOSDELINGUAGEM: 1GERAO(19501962) 2GERAO(19621974) 3GERAO(19741986) 4GERAO(1986...)
LINGUAGEM1GERAO:
LINGUAGEMDEMQUINAOULINGUAGEMDE1GERAO: Os programadores escreviam as suas instrues em cdigos binrios:1e0(Essesprogramassomuitasvezeschamadosde bits); Um simples comando para mulEplicar dois nmeros nesta linguagemde1geraopodianecessitardevriasinstruesou linhasdecdigocontendovrios1se0s! 2x2=0011001001111000001100100000110100001010Moroso!
hqp://nickciske.com/tools/binary.php
Consideradadebaixonvel:noexisteesquemadecodicao menossosEcadoque1se0s.
LINGUAGEMMQUINA1GERAO:
Por ser uma linguagem de programao extremamente divcil poucos programas so escritos nesta linguagem. PORM, a linguagem de mquina a nica linguagem capaz de instruir directamenteaCPU!
LINGUAGEMMQUINA1GERAO:
QUALAIMPORTNCIADESTALINGUAGEM? Nosprimrdiosdodesenvolvimentodacomputao,escreverprogramasde computadoreraumatarefabastantecomplexaasvriaschavesecircuitos abrangendo o hardware do computador Enham que ser instalados manualmente,isto,osdadoseramrepresentadosligandoseoudesligando sesicamentevrioscircuitos. Noscomputadoresmodernos,entretanto,aCPUtrabalhaemconjuntocom vriosprogramasdesozwareparacontrolaroestadovsicodocircuitodigital. Paraqueistoocorra,aCPUdeverecebersinaisdoprogramadocomputador quepossaconverteremao(ligaredesligarcircuitos).
LINGUAGEMASSEMBLY2GERAO:
TentousubsEtuirocdigobinrio(extremamentedivcildeaprender) porsmbolosmaisfacilmentecompreendidos,porexemplo: AparaADICIONAR; MVCparaMOVER; Denominaselinguagemassemblyporcausadosprogramasdesistemas usados para traduzir os simbolos para cdigo de mquina (chamados programasassemblerouassemblers)
AparaADICIONAR;
Assembler
LINGUAGEMASSEMBLY2GERAO:
IMPORTANTEPORQUE:
Esta mudana para um cdigo mais simblico e legvel pelas pessoas permiEu ao programador concentrarse mais na soluo deumproblemadoquenacomplexidadedecodicarprogramas especcosdecomputadorusadoscomalinguagemBinria!
LINGUAGEMALTONVEL3GERAO:
Usainstruesecomandossemelhanteslnguainglesa.EsteEpodelinguagem emaisfcildeseaprendereusardoqueaslinguagensdemquinaeassembly, porque tem maior semelhana com o nvel das comunicaes e entendimentos humano. Exemplos:
PRINTIMPRIMIR READLER
ExemplosdeLinguagens:PASCAL,LinguagensC PermiEuosurgimentodeinmeraslinguagensparaprogramasespecializados: LISPDesenvolvidaparamanipularsmboloselistas; PROLOGDesenvolvidaparatratarerepresentarconhecimentos,etc
LINGUAGEMALTONVEL4GERAO
(4GL):
Nveldeabstraomuitoelevado!PORQU?
LINGUAGEMALTONVEL4GERAO
(4GL):
As linguagens de consulta foram desenvolvidas para manipular bases de dados, permiEndoogerenciamentodeumgrandenmerodeinformaesarmazenadosem arquivos.
EX: O usurio pode dar comandos simples ou fazer procedimentos simplespararecuperarinformaesdeumbancodedados.Umbanco dedadosdecobranasescritoem4GL,porexemplo,podeseclicarem QUANTIAeenter>250paraseconseguirumalistadetodasascontas maioresdoque250
LINGUAGEMALTONVEL4GERAO
(4GL):
As linguagens geradoras de programas representam uma sosEcadaclassedaslinguagens4GL.Permitemaousurioou programador criar facilmente programas complexos em linguagens de terceira gerao, uElizando bem menos declaraesecomandos. Estaslinguagenspossuemumnvelmuitomaiselevadoqueas deterceiragerao.
OutrasLINGUAGENSde4gerao:
As novas direes das linguagens de programao, especialmente das linguagens de quartageraoasuaaplicaocommetodologiasorientadasaobjectos. Essas linguagens so baseadas nos conceitos de objetos, que agrupam comandos de programao com dados em objetos que podem ser usados o tempo todo durante a execuodoprograma,oquemuitoElemambientesdeexecuoparalela.
QUALALINGUAGEMDE5GERAO?(5GL)
Otermo5geraoreferese,especialmente,asistemasqueusammecanismosdarea deintelignciaarEcial(IA). Aslinguagensde programao de quintagerao so chamadas delinguagensnaturais (??Linguagemdoserhumano??) PORQUE? Porquepermitemaosprogramadorescomunicaremsecomocomputadorusandoa LINGUAGEMHUMANA,comoexemplomostradoabaixo. C O M P U T A D O R M O S T R A M E A BASEDEDADOSDA MINHAEMPRESA!
JOAQUIM
LINGUAGENSDEPROGRAMAO
As instrues tm regras/sequncias a seguir, por exemplo:
Queremosdeixarumrecadoaalgum:
1Pegamosnacaneta; 2Escrevemosnoblocoderecados!
TEMLGICA!
LINGUAGENSDEPROGRAMAO
OQUEQUENOTEMLGICA:
Queremosdeixarumrecadoaalgum:
1Escrevermosnoblocoderecados; 2Pegarmosnacaneta!
LINGUAGENSDEPROGRAMAO
A sequncia lgica para aEngirmos uma soluo/objecEvochamase:
ALGORITMO
LINGUAGENSDEPROGRAMAO
A linguagem de programao , assim, usada para descrever ALGORITMOS, ou seja, sequnciaslgicasparaaEngirmosumobjecEvo.
ALGORITMO
Poroutraspalavras:umasequncianitadepassosquelevam execuodeumatarefa. DESTA FORMA: QUAL O ALGORITMO PARA ENGOLIR UM PEDAODEMA?
MASCOMOSEDESENVOLVEUM ALGORITMONOCOMPUTADOR?
PSEUDOCDIGO
Os algoritmos so descritos numa linguagem chamada pseudocdigo
REGRASPARACONSTRUODEUM ALGORITMO
ENTRADASoosdadosdeentradadeumALGORITMO; PROCESSAMENTOSoprocedimentosuElizadosparachegarao resultadonal; SADASoosdadosjprocessados.
REGRASPARACONSTRUODEUM ALGORITMO
EXEMPLO:CALCULARAMDIADEUMALUNOQUEREALIZOU4 TESTESDURANTEOANO.
MDIA=(TESTE1+TESTE2+TESTE3+TESTE4)/4
REGRASPARACONSTRUODEUM ALGORITMO
Quaissodosdadosdeentrada? TESTE1,TESTE2,TESTE3ETESTE4 QualoprocessamentoaseruElizado? SOMAR as quatro notas dos testes (TESTE1, TESTE2, TESTE3 E TESTE4)edividilasporquatro. Quaisserodosdadosdesada? MDIAdos4TESTES!
REGRASPARACONSTRUODEUM ALGORITMO
ALGORITMO:
ENTRADA PROCESSAMENTO SADA
NOTADOTESTE1 NOTADOTESTE2 NOTADOTESTE3 NOTADOTESTE4
SOMAOS4TESTESEDIVIDEPOR4 MOSTRAORESULTADODAMDIA
REGRASPARACONSTRUODEUM ALGORITMO
ALGORITMO:
INICIODOALGORITMO INTRODUZIRNOTADOTESTE1 INTRODUZIRNOTADOTESTE2 INTRODUZIRNOTADOTESTE3 INTRODUZIRNOTADOTESTE4 SOMAOS4TESTESEDIVIDEPOR4 MOSTRAORESULTADODAMDIA FIMDOALGORITMO
IPE InterpretadordealgoritmosemPortugusEstruturado
hqp://fernando.sozdr.com/downloads/install_ipe.exe
DIAGRAMADEBLOCOS
DIAGRAMASDEBLOCOSOUFLUXOGRAMA:
uma forma padronizada e ecaz para representar os passos lgicos de um determinado processamento. A sua principal funofacilitaravizualizaodospassos.
ExistemvriossmbolosusadosnoDiagramadeBlocos:
DIAGRAMADEBLOCOS
INICIO NOTADOTESTE1
NOTADOTESTE2 NOTADOTESTE3
EXERCCIO
RECEBEPRMIO:
SALRIONOVO: SALRIOACTUAL+PRMIO
SALRIONOVO
FIM
RECORDEMOSFUNODEUMALGORITMO
RECORDEMOSCOMPORTAMENTODOCOMPUTADOR
RECORDEMOSREPRESENTAODEUMALGORITMO(PSEUDOCDIGO) DOCLCULODAMDIADEUMALUNO
AlgoritmoCalculo_Media VarN1,N2,MEDIA:real Incio LeiaN1,N2 MEDIA=(N1+N2)/2 SeMEDIA>=7ento EscrevaAprovado Seno EscrevaReprovado Fim_se Fim
TERMINOLOGIADEPROGRAMAO VARIVEIS,CONSTANTESETIPOSDEDADOS
Asvariveissoelementosquepodemassumirvriosvalores,tal comoasentendemosemmatemEca. Asconstantessoelementoscujosvaloressoxos,no podendoseralterados.
M1+M2+M3/3
VARIVEIS TIPOSDEDADOS:
DADOSNUMRICOS Numerosreais(REAL): 24.01nmerorealposiEvocomduascasasdecimais 144.nmerorealposiEvocomzerocasasdecimais 13.3nmerorealnegaEvocomumacasadecimal 0.0nmerorealcomumacasadecimal 0.nmerorealcomzerocasasdecimais Numerosinteiros(INTEGER): 24nmerointeiroposiEvo 0nmerointeiro 12nmerointeironegaEvo
TIPOSDEDADOS:
DADOSLITERAIS/CARACTERES(STRING) Usualmente,osdadosliteraissorepresentadosnosalgoritmospeloconjuntode caracteres,delimitadosnoseuincioetrminocomocaracteraspas("). "QUAL?"literaldecomprimento6 ""literaldecomprimento1 "qUaL?!$"literaldecomprimento8 "AbCdefGHi"literaldecomprimento9 "12+3="literaldecomprimento6 0literaldecomprimento1
TIPOSDEDADOS:
DADOSLGICOS(BOOLEAN) OEpodedadoslgicousadopararepresentardoisnicosvaloreslgicospossveis: verdadeiroefalso.comumencontrarseemoutrasrefernciasoutrosEposdeparesde valoreslgicoscomosim/no,1/0,true/false,yes/no.
TIPOSDEDADOS:
CARACTERSTICAS/ATRIBUTOSDASVARIVEIS:
CARACTERSTICAS/ATRIBUTOSDASVARIVEIS:
VAR<nome_da_varivel>:<Ypo_da_varivel> VAR<lista_de_variveis>:<Ypo_das_variveis> REGRAS: apalavrachaveVARdeverestarpresentesempreeseruElizadaumanicaveznadenio deumconjuntodeumaoumaisvariveis; numamesmalinhapoderoserdenidasumaoumaisvariveisdomesmoEpo.Paratal, devesesepararosnomesdasmesmasporvrgulas; variveisdeEposdiferentesdevemserdeclaradasemlinhasdiferentes. Exemplodedeniodevariveis: VARNOME:literal[10] IDADE:inteiro SALARIO:real TEM_FILHOS:lgico
CARACTERSTICAS/ATRIBUTOSDASVARIVEIS:
CARACTERSTICAS/ATRIBUTOSDASVARIVEIS:
CARACTERSTICAS/ATRIBUTOSDASVARIVEIS:
OPERADORES
Os OPERADORES so meios pelos quais incrementamos, comparamoseavaliamososdadosdentrodocomputador. OsOPERADORESpodemser: ARITMTICOS RELACIONAIS LGICOS
OPERADORESARITMTICOS
OsoperadoresaritmEcossoosuElizadosparaobterresultados numricos. Alm da adio, subtrao, mulEplicao e diviso, podem uElizar tambm o operador para exponenciao. Os smbolosparaosoperadoresaritmEcosso:
OPERADORESARITMTICOS
HierarquiadasOperaesAritmYcas:Oprogramadordeve tersempreemcontaqueprimeiroserealizamasoperaescom: 1()Parnteses 2Exponenciao 3MulEplicao,diviso(oqueaparecerprimeiro) 4+ou(oqueaparecerprimeiro)
OPERADORESARITMTICOS
EXEMPLOTENDOEMCONTA: 1()Parnteses 2Exponenciao 3MulEplicao,diviso(oqueaparecerprimeiro) 4+ou(oqueaparecerprimeiro)
1+7*2^2=
1+7*4=1+7*4=29
Exerccio:3*(32)+4*2=11
EXERCCIOS Apresente os seguintes resultados: 3*3= 9/2= 9DIV2= 9MOD2= 2+4.6= 5+2*4= (5+2)*4= 7/3*3= 7DIV2*3= 7DIV(2*3)=
Linearizaodeexpresses
((2/3(53))+1)*5 computacional
OPERADORESRELACIONAIS
Os operadores relacionais so uElizados para comparar String de caracteres e nmeros. Os valores a serem comparadospodemsercaracteresouvariveis. Estes operadores sempre retornam valores lgicos (verdadeiro ou falso/ True ou False) Para estabelecer prioridadesnoquedizrespeitoaqualoperaoexecutar primeiro,uElizarosparnteses
OPERADORESRELACIONAIS
OSSIMBOLOSSO:
OPERADORESRELACIONAIS:Expresses
EXEMPLO:Tendo2variveisA=7eB=2 Osresultadosdasexpressesseriam:
EXPRESSO A=B A<>B A>B A<B A>=B A<=B RESULTADO FALSO VERDADEIRO VERDADEIRO FALSO VERDADEIRO FALSO
OPERADORESLGICOS:
Os operadores lgicos servem para combinar resultados de expresses, retornando se o resultado nal verdadeiro ou falso.
Uma expresso AND (E) verdadeira se todas as condies forem verdadeiras Uma expresso OR (OU) verdadeira se pelo menos uma condio for verdadeira Um expresso NOT (NO) inverte o valor da expresso ou condio. Se verdadeira inverte para falsa e vice-versa. Atabelaabaixomostratodososvalorespossveiscriadospelostrs operadoreslgicos(AND,OReNOT)
Uma expresso AND (E) verdadeira se todas as condies forem verdadeiras Uma expresso OR (OU) verdadeira se pelo menos uma condio for verdadeira Um expresso NOT (NO) inverte o valor da expresso ou condio, se verdadeira inverte para falsa e vice-versa.
Exemplos: Suponha que temos trs variveis A = 5, B = 8 e C =1 Os resultados das expresses seriam:
F T RESULTADOS FALSO VERDADEIRO VERDADEIRO VERDADEIRO FALSO FALSO
EXERCCIOS:
1. Sabendo que A=3, B=7 e C=4, informe se as expresses abaixosoverdadeirasoufalsas. a) (A+C)>B() F b) B>=(A+2)() V c) C=(BA)() V d)(B+A)<=C() F e) (C+A)>B() F 2.SabendoqueA=5,B=4eC=3eD=6,informeseasexpresses abaixosoverdadeirasoufalsas.
OPERAESLGICAS:
As operaes lgicas so importantes quando se torna necessrio tomar decises num diagrama de blocos. Numdiagramadeblocos,todadecisotersemprecomo respostaoresultadoVERDADEIROouFALSO.
OPERADORESRELACIONAIS
SmbolouElizado(emdiagramadeblocos)
SIM
A=B
NO
EXERCCIOCOMOPERAESLGICAS:
Fazer um algoritmo para comer um bombom de cco.
Se algumas pessoas no gostarem de cco, ento o algoritmo tem que ser adaptado:
Pegar no bombom Gosta de Bombom de cco? Se SIM, ento comer o bombom cco;
Se NO continuar o Algoritmo; Comer o bombom
EXERCCIOCOMOPERAESLGICAS:
INICIO
PEGAR NO BOMBOM
NO
SIM
NO COMER O BOMBOM
COMER O BOMBOM
FIM
EXERCCIOCOMOPERAESLGICAS:
Umcandeeiroligadocorrente,quetemumalmpada,noacende.Crieumalgoritmopara obterterluz. ENROSCAR LAMPADA NO SIM TROCAR LMPADA SIM
INCIO
Lmpada Enroscada?
FIM
EXERCCIO2
Crieumalgoritmoparairpescanumlago,sabendoques20htemderegressaracasae nosabesetemocarrodisponvelparairevoltar.
EXERCCIOS 1. Desenhe um diagrama para obter a mdia de dois testes. Sabendo que: Se o aluno tiver a mdia maior ou igual a sete APROVADO. Caso contrrio REPROVA O ANO.
2. Desenhe um diagrama para obter a mdia dos alunos do 12 ano com as seguintes caractersticas: Os alunos que tiveram mdia menor que 5 REPROVAM o ano. Se tiverem mdia maior ou igual a 5 mas menor que 7 - PRECISAM DE UMA NOVA AVALIAO. Caso tenham tido maior ou igual a 7 esto APROVADOS.
1.
2.
FORMASDEREPRESENTAODOSALGORITMOS
EXERCCIO:
Uma empresa vai acrescentar a cada salrio base dos seus funcionrios uma graticao de 40 , devido aos lucros obtidos nesse ms.
Sabendo que:
Salrio bruto = Salrio base + graticao
Se o salrio bruto for maior ou igual que 1000 as nanas cobram 20% de impostos.
Se o salrio bruto for menor que 1000 as nanas cobram 15% de impostos.
Salrio lquido = Salrio bruto - impostos.
Desenhe um diagrama de blocos para calcular o salrio lquido.
INSTRUESPRIMITIVAS
DisposiYvo/Perifricodeentradaomeiopeloqualasinformaes(maisespecicamente osdados)sotransferidaspelouElizadoroupelosnveissecundriosdememriaao computador.Osexemplosmaiscomunsso:oteclado,orato, astaseosdiscosmagnEcos,entreoutros; DisposiYvo/Perifricodesadaomeiopeloqualasinformaes(geralmente,os resultadosdaexecuodeumprograma)sotransferidaspelocomputadorao uElizadorouaosnveissecundriosdememria.Exemplos:monitordevdeo, impressora,tasediscosmagnEcos,entreoutros; Sintaxeaformacomooscomandosdevemserescritos,amdeser entendidospelotradutordeprogramas.AviolaodasregrassintEcas consideradaumerrosujeitopenadonoreconhecimentodocomandoporparte dotradutor; SemnYcaosignicado,ouseja,oconjuntodeaesqueseroexercidaspelo computadorduranteaexecuodoreferidocomando.
INSTRUESPRIMITIVAS
EXERCCIO
Escrevaumalgoritmoparacalcularoconsumomdiodeumautomvel(medidoem Km/l),dadoquesoconhecidosadistnciatotalpercorridaeovolumedecombusvel consumidoparapercorrla(medidoemlitros).
SOLUO
Aprincipalquestoaserlevantadanaobtenodoalgoritmopedidoconsistena formulaodaexpressousadaparacalcularoconsumomdio(CM)aparErda distnciatotalpercorrida(DIST)edovolumedecombusvelconsumido(VOL),que dadapor:CM=DIST/VOL UmavezobEdaestaexpresso,aformulaodoalgoritmodesejadoconsisteemuma simplesrepeEodaquelesapresentadosnasquestesanteriores:deveseobtero valordasvariveisDISTeVOL,calcularoconsumopelaexpressoacimae, nalmente,mostraraousurioovalorcalculado.
EXERCCIO
EXERCCIO
AssumindoquetodasasvariveisuElizadas(CM,DISTeVOL)sodoEporeal,podese escreveropseudocdigoseguinteparaouxogramaanterior: Pseudocdigo AlgoritmoCONSUMO_MEDIO VarCM,DIST,VOL:real Incio EscrevaAlgoritmoparacalcularoconsumo EscrevaDistnciatotalpercorrida(Km): LeiaDIST EscrevaVolumedecombusvelgasto(L): LeiaVOL CMDIST/VOL EscrevaConsumomdio=,CM,Km/l Fim.