01. lógica e programação basica

Upload: elcilene-nunes

Post on 13-Apr-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/27/2019 01. Lgica e Programao Basica

    1/16

    Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 1

  • 7/27/2019 01. Lgica e Programao Basica

    2/16

    Sumrio

    1. Introduo a Lgica ................................................................................................ 03

    2. Verdadeiro e Falso .................................................................................................. 033. Conectivo E e OU ................................................................................................... 03. !egao ................................................................................................................. 0". Introduo a #rogra$ao ..................................................................................... 0%. Ele$entos &'sicos de u$ Cdigo Fonte ............................................................... 0

    %.1 #alavras (eservadas .................................................................................................. 0%.2 Co$ent'rios ................................................................................................................ 0%.3 O)eradores .................................................................................................................. 0%. *tri+uio ..................................................................................................................... 0%." Constantes .................................................................................................................. 0"%.% Vari'veis ...................................................................................................................... 0"

    ,. *rra-s ...................................................................................................................... 0%,.1 Vetores ......................................................................................................................... 0%,.2 atri/es ....................................................................................................................... 0%

    . E)resses Lgicas e *rit$ticas .......................................................................... 0,.1 O)eradores *rit$ticos ............................................................................................... 0,.2 O)eradores Lgicos .................................................................................................... 0,.3 O)eradores (elacionais .............................................................................................. 0,. E)resses 45+ridas ................................................................................................... 0,." Lineari/ao de E)resses ....................................................................................... 0

    6. #lano cartesiano do 7a$e a8er .......................................................................... 010. Condicional IF e EL9E .......................................................................................... 0611. Condicional 9:I;C4 ............................................................................................. 1012. Lao de (e)etio FO( ........................................................................................ 1113. Lao de (e)etio :4ILE .................................................................................... 121. Lao de (e)etio

  • 7/27/2019 01. Lgica e Programao Basica

    3/16

    1. !"#$%&'($ A L)G*A

    uita gente descon>ece a Lgica ate$'tica? )ois ela u$a ci@ncia Auegeral$ente ensinada no curso su)erior. 9e +aseia e$ c'lculos diretos? onde no soutili/ados nB$eros? $as si$ so$ente dois valores lgicos VE(ece$ so+re a

    linguage$ de )rogra$ao ou lgica? ne$ i$agina$ Aue ao $es$o te$)o Aue esto sedivertindo? ta$+$ esto a)rendendo so+re os valores lgicos.

    2. +,#%A%,#$ e -ALS$

    !o )ara$os )ara notar? $as os valores lgicosesto e$ nosso cotidiano? e$ AualAuer coisa AueDala$os? ouvi$os ? le$os ou escreve$os. O si$)lesato de a)rovar ou negar algo? u$ valor lgico.

    Os valores lgicos so tra+al>ados e$linguage$ de )rogra$ao? onde u$ resultado ser'se$)re verdadeiro ou Dalso? vea na ta+ela a seguir? osres)ectivos sinni$os desses valores nas linguagens?outras literaturas e at $es$o e$ nosso cotidiano

    . *$!,*"+$S /$&0 e /,0

    I$agine$os Aue voc@ te$ 10 reais? e vai G u$a loa de utilidades onde te$ u$carrin>o custando 10 reais e u$a +oneca ta$+$ no $es$o valor. Co$ esse din>eirovoc@ so$ente )oder' co$)rar o carrin>o $&a +oneca. Caso v' G loa co$ 20 reais?)oder' co$)rar o carrin>o ,a +oneca.

    *oecti2o /,0 3co4uo5= utili/ado se$)re)ara dar u$a ideia de si$ultaneidade. Ou sea? enAuanto u$dos valores ou os dois valores Dore$ Dalsos? o resultado lgicose$)re ser' Dalso. #ode ser re)resentado )or adou 66

    Ee$)lo Hoo te$ 20 anos VJ e no te$ carteira de$otorista FJ. Hoo o)ode dirigir FJ.

    *oecti2o /$&0 3dis4uo5= utili/ado )ara di/er seocorrer' u$ evento ou outro? ou sea? se ocorrer u$ doseventos verdadeiroJ ou os dois eventos? o valor lgico ser'verdadeiro. 9o$ente ser' Dalso Auando os dois eventos Dore$Dalsos. #ode ser re)resentado )or orou 77

    Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 3

  • 7/27/2019 01. Lgica e Programao Basica

    4/16

    Ee$)lo * se$ana te$ dias FJ ou o &rasil o )a5s do Dute+ol VJ. O resultado dessadisuno verdadeira VJ? )ois a segunda )ro)osio verdadeira.

    8. !,GA'($

    * negao utili/ada )ara eDetuar a inverso de valores? ousea? se o valor verdadeiro ele Dica Dalso e vice=versa.

    #ode ser re)resentado )or o395? :9e ;9? vea na ta+ela aolado.

    S*$S %, &M *)%G$?-$!", 3S*#P"S5

    =.1 Pala2ras #eser2adas@ )alavras Aue te$ u$ signiDicado es)ecial no cdigo? ousea? geral$ente so aAuelas )alavras Aue eecuta algu$ co$ando e )or isso no )ode$ser usadas )ara outros Dins? co$o no$ear vari'veis. Ee$)los iD? else? +rea8? continue?t>en? etc...

    =. *ometrios@ so )alavras ou Drases Aue no interDere$ no cdigo? sua Duno a)enas e)licativa? no altera nada na seAu@ncia lgica do scri)t. #ara colocar u$co$ent'rio insira MMN duas +arrasJ seguido da Drase? caso sea s u$a lin>a ou ta$+$coloAue o teto entre M e M asterisco e +arraJ se Dor $ais de u$a lin>a.

    =. $peradores Aritmticos e Lgicos@no cdigo Donte? os sinais $ate$'ticos e

    lgicos so re)resentados )or

    C 3mais5 P 9o$a e concatenao? 3meos5 P 9u+traoD 3asterisco5 P ulti)licaoE 3Farra5 P

  • 7/27/2019 01. Lgica e Programao Basica

    5/16

    9intae RvariavelS RconstanteS ou RvariavelS ou Re)ressaoSEe$)lo )ersonage$ Q 1K2

    =.< *ostates@so valores Dios Aue no $uda$ no decorrer da eecuo?geral$ente atri+u5do a algu$a vari'vel ou utili/ado direta$ente nu$ c>a$ado. 9o

    constantes nB$eros? strings? e)resses e valores lgicos.P Strigsso conunto de caracteres? onde deve$ ser colocados entre TeT as)as si$)lesJou entre eN as)as nor$alJ. O KN $aisJ entre duas strings Da/ a concatenao DusoJdelas. E. de strings carroN? Or8utN? etc... Concatenao carroNKNcasaNQNcarrocasaNP teiros so nB$eros naturais inteiros? sea ele negativo ou )ositivo. E ose utili/aas)as )ara atri+u5=los ou c>a$a=los. E. de inteiros =2"? ="2? 0? ,? 3? =1? 2? etc...P -lutuatesso nB$eros reais? ou sea? aAueles Aue no so eatos. E ose utili/aas)as )ara atri+u5=los ou c>a$a=los. E. de Dlutuantes 2."? =1.2? 0.2? .,? =%.,? =.1? etc.P +alores lgicosso condies verdadeiras ou Dalsas. !o 7a$e a8er )ode$os usar 1verdadeiroJ e 0 DalsoJ? $as )ara evitar erros e conDuses co$ inteiros? o ideal usar trueou Dalse.

    P ,9pressesso c'lculos eecutados durante o )rocesso? e )ode o+ter resultadoarit$tico? lgico ou >5+rido. E. 2K%? 2"=%? "RS%? "KR6? etc. Vere$os logo $ais?detal>ada$ente so+re as e)resses.

    =.= +ari2eis@so es)aos na $e$ria Aue guarda$ inDor$aes durante aeecuo do ogo. Essas inDor$aes )ode$ variar no decorrer da eecuo. #aradeclarar o valor de u$a vari'vel? necess'rio colocar nos eventos Create? 7a$e 9tart ou(oo$ 9tart? utili/ando u$ sinal de atri+uio QJ. Ee$)lo carro 1. O valor de carroN noin5cio do ogo? ser' 1.#ara alterar o valor de u$a vari'vel no decorrer do ogo? +asta Aue no evento? coloAue avari'vel seguida do sinal de atri+uio e do novo valor carro Q 3. *gora? carroN vale 3. asse voc@ Auer acrescentar ou retirar valores da vari'vel? +asta colocar u$ sinal $ate$'ticoao atri+uir.

    Ee$)lo a$ar u$a vari'vel co$ a Duno

  • 7/27/2019 01. Lgica e Programao Basica

    6/16

    Q. A##ARS 3+A#>+,S *$M S,"$#,S5

    Q.1 +etores@so vari'veis Aue )ossue$ v'rios setores e$ seu es)ao de $e$ria?sendo assi$? no necess'rio declarar u$a vari'vel $ais de u$a ve/? +asta declarar u$ave/ e de)ois alterar os 5ndices atri+uindo u$ valor diDerente )ara cada u$.

    9intae RvariavelSWRindiceSXEe$)lo+loco Q 0 P

  • 7/27/2019 01. Lgica e Programao Basica

    7/16

    $e$ria? )or isso siga se$)re essa dica !unca deie es)aos e$ +ranco nu$ arra-? seaele u$ vetor ou u$a $atri/.Ee$)los de co$o c>a$ar u$ arra- co$ a Duno

  • 7/27/2019 01. Lgica e Programao Basica

    8/16

    U.< Liearizao de ,9presses@ o ato de des$anc>ar u$a e)resso?colocando=a nu$a lin>a s. Vea o ee$)lo a seguir

    !a linguage$ de )rogra$ao? no >' co$o colocar essa Dr$ula no cdigo Donte?)ara isso deve$os lineari/ar? res)eitando os o)eradores e sua )reced@ncia. *ssi$

    3Cs[rt38DCU55E3DD5

    Co$o todos deve$ sa+er desde o ensino Dunda$ental? nu$a e)resso se$)ar@nteses? os o)eradores te$ u$a orde$ de )reced@ncia Aue deve$os seguir ta+elasaci$aJ? onde Aue se errado o c'lculo? o resultado )ode ser diDerente do es)erado. as)ara nossa Delicidade? os co$)iladores e$ geral? eecuta$ res)eitando essa )reced@nciaauto$atica$ente? +asta inserir$os correta$ente a e)resso utili/ando )ar@nteses )araindicar a )reced@ncia eata e )ara Dicar $ais agrad'vel visual$ente.

    Zuanto a Auesto de rai/ Auadrada e e)onenciao? o 7a$e a8er ' conta co$Dunes es)ec5Dicas )ara isso e )ara outros c'lculos. #or ee$)lo rai/ Auadrada de 1%sArt1%J e a )ot@ncia de sArJ.

    \. PLA!$ *A#",SA!$ %$ GAM, MA],#

    ;odos esta$os acostu$ados co$ aAuele )lano cartesiano Aue a)rende$os Auandoainda esta$os no ensino $dio onde na lin>a 9? )ositivo G direita do /ero e negativo Gdireita e onde e$ ? )ositivo )ara ci$a e negativo )ara +aio. #ois esAuea desse )lanocartesiano? )orAue o do 7a$e a8er a lin>a do -N inversa? vea a+aio )orAue.

    Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 8

  • 7/27/2019 01. Lgica e Programao Basica

    9/16

    1I.*$!%*$!AL /-0 , /,LS,0

    &asica$ente a condicional IDN e$ traduo livre seNJ? tra+al>a co$ os valoreslgicos? verdadeiro e Dalso. 9e no ocorre u$ evento? ento ocorre outro. Vea o ee$)lo 1a seguir logo $ais leia a e)licao

    EXEMPLO 1SeJoo > 18 anosentoPoder dirigir

    &o$? ca5$os nu$a Auesto lgica? ondeHoo s )oder' dirigir se tiver $ais de 1anos? caso contr'rio no )oder'.

    EXEMPLO 2Se(Maria == Solteira) && (Maria > 21 anos)ento Maria pode se asar

    !esse ee$)lo 2? utili/a$os u$ eN? ondearia s )oder' se casar se tiver 21 anos eestiver solteira. Caso so$ente u$ doseventos sea verdadeiro? ela no )oder' se

    casar.

    EXEMPLO 3Se(Pa!la > " reais) o! (Pa!la == " reais)entoPa!la #iar e$ asa

    !o ee$)lo 3? #aula )ode ou no terdin>eiro Aue Dicar' e$ casa do $es$o eito.

    as co$o isso Dicaria no 7a$e a8er[ &o$? no 7 utili/a$os no lugar de seN? o

    iDN e no lugar de entoN? usa$os \ ]N a+re e Dec>a c>avesJ.

    EXEMPLO 4If % > {dra'tet(*y*$aior)}

    9e a condio Dor verdadeira? eecutar'tudo o Aue estiver entre c>aves. Le$+randoAue? se Dor s u$a lin>a no necess'rio ouso da c>aves? )ode ser na $es$a lin>a dae)resso If % > dra'tet(*y*$aior)

    Caso Aueira colocar $ais u$a condio caso ela sea Dalsa? a5 entra e$ ao o elseN Auee$ traduo livre senoNJ.

    EXEMPLO 5Searro + ,"-$./ento 0o lea $!ltaSenole 3 $!ltado

    EXEMPLO 6Se(% == %) && (%4=,)ento 5 ig!alSeno5 di#erente

    #ara inserir essas condies no 7a$e a8er? a sintae +e$ )arecida co$ a do 7a$ea8er? )or$ envs de senoN? utili/a$os elseN. Va$os Da/er o ee$)lo , usando o

    Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 9

  • 7/27/2019 01. Lgica e Programao Basica

    10/16

    EXEMPLO 7If % > {dra'tet(*y*$aior)} else {

    dra'tet(*y*$enor)}

    9e o nB$ero " Dor $aior Aue 3? escreva$aiorN? seno? escreva $enorN.E al$ de constantes co$o inteiros?

    Dlutuantes? lgicos e strings? ta$+$)ode$os utili/ar vari'veis )ara co$)arar.

    EXEMPLO 8If arro + ," {dra'tet(*y*0o 3 $!ltado)} else {dra'tet(*y*5 $!ltado)

    }

    9e o carro no ultra)assar %0 ^$M>? ele noser' $ultado? )or$ caso ultra)asse? eleser' $ultado.

    &o$? ainda eiste u$ terceiro caso Aue )ode$os adicionar? vea no )ro+le$a a seguir

    6a7a !$ sript onde esrea na tela se o n!$ero digitado pelo !s!rio 3 $aior* $enor o!ig!al a %

    * Auesto a seguinte? co$o )ode$os colocar essa terceira condio se so+te$os duas[ ID e ElseJ* res)osta si$)les? )orAue )ode$os inserir se$)re u$a Duno dentro da outra? ou sea?)ode$os colocar u$a condicional dentro da outra? vea na resoluo a seguir

    EXEMPLO 9If n!$ero > % {dra'tet(*y*Maior)} else { if n!$ero + % { dra'tet(*y*Menor)

    } elsedra'tet(*y*9g!al)}

    nu$eroN a vari'vel onde Dicar' guardadoo valor Aue o usu'rio digitar. 9e ele digitaru$ nB$ero $aior Aue "? ir' escrever na telaaiorN? seno? se colocar u$ nB$ero$enor? vai escrever enorN? seno?escrever' IgualN.Le$+rando Aue +o$ se$)re identar.P detar dar u$ recuo G direita na lin>ainDerior? )ara Aue a $es$a DiAueco$)reens5vel.

    11. *$!%*$!AL /S^"*Y0

    !a condicional 9itc>N escol>aNJ? testada u$a vari'vel nu$a seAu@ncia de lin>as atAue sea encontrada u$a coincid@ncia. *)s ser encontrada? ser' encerrada a condio.Vea o ee$)lo a seguir

    Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 10

  • 7/27/2019 01. Lgica e Programao Basica

    11/16

    EXEMPLO 1egue a 100 de 1 e$ 1J.

    *gora vea co$o Dica no 7a$e a8er

    Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 11

  • 7/27/2019 01. Lgica e Programao Basica

    12/16

    EXEMPLO 2fo& !M=" M==1"" MB=1" {(C)}

    * diDerena )ara a linguage$ do 7a$ea8er Aue so$ente escreve$os o DorN)araNJ? e e$ seguida indica$os a vari'velAue co$ear'? co$ o valor inicial? o valorDinal e Auando ser' acrescentado a cadaloo) se)arados )or )onto=e=virgulaJ.

    EXEMPLO 3fo& !i=" i+=," MB=1" {arroB=2}

    !o Dinal da eecuo desse lao? o valor de iser' %0 e da vari'vel carro ser' 120.

    1. LA'$ %, #,P,"'($ /^YL,0

    O :>ileN EnAuantoNJ? u$ co$ando onde s te$ Di$ Auando a eecuo Dalsa?ou sea? s sai do loo) Auando a seAu@ncia de co$andos Dor diDerente da condio.Ee$)lo

    EXEMPLO 1, . 1wile !$ + 2"""{

    $ = $ B 1dra'tet(roo$'idt/.2* roo$/eig/t.2* $"}

    EnAuanto $N Dor $enor Aue 200? eecute oAue est' entre c>aves.!a c>aves? $N a cada loo)? ir' rece+er elee $ais u$ e escrever' na tela..

    *o c>egar e$ 200? sair' do loo)? )arandode adicionar a $N.

    Caracter5sticas )rinci)ais do :>ileN

    P O co$ando )ode ser va/io? si$)les ou +locoP Ele eecutado desde Aue a condio seaP ;esta a condio antes de eecutar o lao? ou sea? se a condio Dor Dalsa ele ne$eecutar' o lao? enAuanto o

  • 7/27/2019 01. Lgica e Programao Basica

    13/16

    EXEMPLO 1, . 1)o {$ = $ B 1dra'tet(roo$'idt/.2* roo$/eig/t.2* $"} *ntil !$ == 2"""

    Eecute o Aue est' entre c>aves? at Aue$N sea igual a 200.!a c>aves? $N a cada loo)? ir' rece+er elee $ais u$ e escrever' na tela..*o c>egar e$ 200? sair' do loo)? )arando

    de adicionar a $N.

    Vea u$ outro ee$)lo do a$'=la no o+etoJP 3. Lista co$ as eecues da Duno? onde arg!$ent+n!$> )adroP . Lista contando seus o+etos? onde )ode$ ou no usar Dunes.

    9intae 9cri)tsN RvariavelS Q argu$entRnu$S

    9intae O+ectsN RDuncaoSarg0?arg1?arg2...J

    Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 13

  • 7/27/2019 01. Lgica e Programao Basica

    14/16

    15/1 0*n+es se, eto&no$ u$a Duno Aue no utili/a u$ retorno de u$aeecuo es)ec5Dica. (etornando a Blti$a lin>a de co$ando? e se necess'rio acu$ulando$ais valores das anteriores.

    EXEMPLO 1

    P#st# O%ectsdra'tet(roo$'idt/.2* roo$/eig/t.2*teste!2")

    P#st# Sc&i-ts no,e testei = #&*,enti B= "

    9er' desen>ado na tela o valor eecutadona Duno testeN? onde arg!$ent" 20N.!o scri)t? o arg!$ent"Doi atri+u5do )ara avariavel iN? onde e$ seguida Doi adicionado30 ao valor original? retornando "0 noo+eto.

    EXEMPLO 2P#st# O%ectsdra'tet(roo$'idt/.2* roo$/eig/t.2*o*t&oteste!345")

    P#st# Sc&i-ts no,e o*t&oteste$ = #&*,entn = #&*,ent1i = ,B? = $Bn

    9er' desen>ado na tela o valor eecutado

    )or outrotesteN? onde arg!$ent" 3N earg!$ent1 "N.!o scri)t? o arg!$ent"Doi atri+u5do )ara $Ne arg!$ent1)ara nN.Logo e$ seguida Doi calculado e$ iN ae)resso %K3N e no Di$ Doi so$ado $Nco$ nN e atri+u5do )ara 8N.as co$o di/ na e)licao aci$a? eleso$ente retorna a Blti$a lin>a? ento a lin>ai = ,Bno te$ valor signiDicativo )ara oo+eto.

    15/2 0*n+es co, eto&no$ u$a Duno Aue utili/a u$ retorno )ara colocar noo+eto a e)resso ou vari'vel. Vea os ee$)los a seguir

    EXEMPLO 1P#st# O%ectsdra'tet(roo$'idt/.2* roo$/eig/t.2*&eto!15")

    P#st# Sc&i-ts no,e &etop = #&*,entp B= 1"ret!rn pB2

    9er' desen>ado na tela o valor eecutadona Duno retoN? onde arg!$ent" 1"N.!o scri)t? o arg!$ent"Doi atri+u5do )ara avariavel )N? onde e$ seguida Doi adicionado10 ao valor original? retornando )N $ais %")ara o o+eto.

    EXEMPLO 2P#st# O%ectsdra'tet(roo$'idt/.2* roo$/eig/t.2*

    &eto2!455")

    9er' desen>ado na tela o valor eecutado)or reto2N? onde arg!$ent" N earg!$ent1 ""N.!o scri)t? o arg!$ent"Doi atri+u5do )ara oN

    e arg!$ent1)ara >N.

    Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 14

  • 7/27/2019 01. Lgica e Programao Basica

    15/16

    P#st# Sc&i-ts no,e &etoo = #&*,ent/ = #&*,ent1i = ,Bret!rn $Bn

    Logo e$ seguida Doi calculado e$ iN ae)resso %K3N. as no Dinal ele )ederetorno so$ente da so$a das vari'veis $Nco$ nN? ignorando a var'vel iN e suae)resso.

    U$a Duno te$ $uitas utilidades na criao de u$ ogo ou )rogra$a. !o ee$)loa+aio? Doi Deita u$a estrutura co$ Duno

    EXEMPLO 3!o$e da Funo 4ogoI1N

    iD 8e-+oard`8e- QQ argu$ent0J\ =Q ] else \ iD 8e-+oard`8e- QQ argu$ent1J\ KQ ]]

    O+eto 01 alHaFetoN evento 9te)N O+eto 02 direcioaisN evento 9te)N

    4ogoI13ordT*TJ? ordTt5

    Vea Aue? c>a$a$os o cdigo de teclado e$ 2 o+etos diDerentes e co$ teclasdiDerentes? s Aue os dois utili/a$ a $es$a Duno? Aue Da/er os o+etos andare$ )araesAuerda e )ara a direita. 9endo assi$ no )recisa$os re)etir o cdigo duas ve/es.

    ,HimO e9istem 2rias outras Hues prprias do Game MakerO da pr9ima 2ez Halareimais soFre o assuto. $Frigado pelo doload e pela leitura.

    Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 15

  • 7/27/2019 01. Lgica e Programao Basica

    16/16

    ,ditado por Giosepe LuizgiosepeNluiz_`otmail.com

    +erso do Game Maker &sada@ U.I\ de maio de I1I

    *uritiFa ? Para ? Brasil

    Con>ea $ais so+re o 7a$e a8er? +aie s)rites? engines? outros eten>a a auda Aue )recisar nos sites a seguir

    `[email protected]

    `[email protected]?resource.com

    9ai+a tudo so+re InDor$'tica e ;ecnologia? o+tendo dicas e donloads

    das $el>ores Dontes e sites da e+Y

    `[email protected]

    Apostila Bsica de Lgica e Programao para Game Maker por Giosepe Luiz 16

    mailto:[email protected]://www.gamemakerbrasil.com/http://www.spriters-resource.com/http://www.dicasemgeral.com/mailto:[email protected]://www.gamemakerbrasil.com/http://www.spriters-resource.com/http://www.dicasemgeral.com/