Apostila Lógica Scratch Python E-Jovem
-
Upload
rafael-gomes -
Category
Documents
-
view
234 -
download
29
Transcript of Apostila Lógica Scratch Python E-Jovem
-
Lgica de programao
Fortaleza, Dezembro de 2009.
-
SumrioCaptulo1.LgicadeComputadores......................................................................................1
1.1.Introduo...................................................................................................................11.2.PrincipaiselementosdeHardware..............................................................................1
1.2.1.MemriaPrincipal................................................................................................11.2.2.ProcessadorouUnidadeCentraldeProcessamento(CPU)..................................21.2.3.Unidadesdeentradaesada...............................................................................2
1.3.Lgicadeprogramao...............................................................................................21.3.1.Sequncialgica(Passoslgicos)......................................................................21.3.2.Oquesoinstrues?..........................................................................................2
1.4.Definiodealgoritmo................................................................................................31.4.1.Exemplodeumalgoritmo(Sequncialgicadodiaadia).................................31.4.2.FazendoalgoritmosPraticandoalgoritmosdodiaadia....................................4
1.5.Pseudocdigo(Formagenricadeescreverumalgoritmo,utilizandoumalinguagemsimples)............................................................................................................41.6.Regrasparaconstruodoalgoritmo.........................................................................4
1.6.1.Estruturaprincipaldeumalgoritmo..................................................................41.6.2.Fases....................................................................................................................5
1.7.TiposdeDados............................................................................................................51.8.Identificadores.............................................................................................................5
1.8.1.Formaodeidentificadores................................................................................51.9.Literais(ouconstantes)...............................................................................................61.10.Variveis...................................................................................................................6
1.10.1.Declaraodevariveis......................................................................................61.11.Atribuiodevalores.................................................................................................71.12.ComandodeEntradaesada....................................................................................71.13.DiagramadeBloco....................................................................................................71.14.OperadoresRelacionais.............................................................................................81.15.OperadoresLgicos...................................................................................................91.16.EstruturasdeDecisoeRepetio..........................................................................10
1.16.1.EstruturaSE...FAAISSO/SENO.................................................................101.16.2.EstruturaEnquanto.........................................................................................111.16.3.EstruturaPARADEATFAA..............................11
Captulo2.Scratch...............................................................................................................132.1.IntroduoaoScratch...............................................................................................132.2.AmbienteouInterfacedeprogramaodoScratch..................................................13
2.2.1.MenuGeral........................................................................................................142.2.2.AlgunsElementosdoScratch.............................................................................15
2.2.2.1.readecomandooureadeScript.............................................................152.2.2.2.Palco............................................................................................................152.2.2.3.Mostrandosistemadecoordenadaseorientaes.......................................162.2.2.4.Sprite..........................................................................................................162.2.2.5.Opesderotao.......................................................................................162.2.2.6.Informaesdoobjeto.................................................................................162.2.2.7.Opesparareadescript..........................................................................162.2.2.8.Encolher/Crescer/Apagar/DuplicarObjeto...........................................172.2.2.9.ModosdeApresentao...............................................................................17
2.2.3.Categoriadecomandos......................................................................................172.3.TiposdecomandosdoScratch..................................................................................172.4.MudandooSprite(ListadeSprites)..........................................................................18
-
Projeto eJovem Mdulo II: Lgica de Computadores 3
2.5.Movendoumcomandoeexecutandoo...................................................................182.6.TrabalhandocomaabaMovimento.........................................................................19
2.6.1.Trabalhandocomomova...................................................................................192.6.2.Trabalhandocomovire.....................................................................................192.6.3.Alterandoonumerodegrausepassosnocomando..........................................202.6.4.Movendoevirando............................................................................................202.6.5.Mostrandocomovoltarparaaposioinicial..................................................202.6.6.Trabalhandomaiscomaposioeaorientao................................................21
2.7.Trabalhandoemblocos.............................................................................................212.8.Retirandoumaaodeumbloco..............................................................................212.9.Removendoumaao...............................................................................................212.10.Renomeandoumobjeto..........................................................................................212.11.Trabalhandocomabaaparncia.............................................................................22
2.11.1.TrabalhandocomTrajes...................................................................................222.11.2.TrabalhandocomDigaePense..................................................................222.11.3.Mudandoosefeitos........................................................................................222.11.4.Modificandoostamanhos................................................................................232.11.5.Aparecendo/desaparecendo...........................................................................232.11.6.Trabalhandocomcamadas..............................................................................23
2.12.Trabalhandocomaabadesom(adicionandosom)................................................232.12.1.TrabalhandocomocomandoToqueosom......................................................232.12.2.TrabalhandocomToqueotamboreToqueanota...........................................242.12.3.Trabalhandocomvolumeeritmo...................................................................24
2.13.Ensaiandoumpdedana.....................................................................................242.14.Trabalhandocomaabacaneta................................................................................24
2.14.1.UsandooAbaixar,levantar,carimbeelimpe...................................................252.14.2.Mudandoacor,otomeotamanhodacaneta.................................................25
2.15.Trabalhandocomaabacontrole.............................................................................252.15.1.Usandooquando.............................................................................................252.15.2.Usandooscontrolesse/seseno....................................................................252.15.3.Usodocontrolesempre...................................................................................262.15.4.Usandooscontrolesrepita/repitaat/semprese........................................262.15.5.Usandoopareeespere....................................................................................26
2.16.Iniciandoeparandoumprograma..........................................................................262.17.UsandoTeclasDetectandoteclaspressionadas....................................................272.18.Mudandoacordeobjetoquandopressionadadeterminadatecla..........................272.19.Mudandoostrajescomcontrole.............................................................................272.20.Tocarnabordaevoltar...........................................................................................282.21.Desenhandoumaestrada........................................................................................282.22.Desenhandoumquadrado......................................................................................282.23.TrabalhandocomaabaSensores............................................................................29
2.23.1.Comandostocandoem/tocandona/tocandocor........................................292.23.2.Comandospergunteeresposta........................................................................292.23.3.Comandosmousexemousey........................................................................292.23.4.Comandosmousepressionado/teclapressionada/temporizador................29
2.24.MovimentandoSpriteporSensores........................................................................292.25.Movendosecomrelaoaotemporizador..............................................................302.26.FalaeCalcular.........................................................................................................30
-
Projeto eJovem Mdulo II: Lgica de Computadores 4
2.27.TrabalhandocomaabaVariveis............................................................................302.27.1.Usandovariveis..............................................................................................312.27.2.Listas................................................................................................................31
2.28.Caracteres...............................................................................................................312.29.Criandoumpequenoaplicativo..............................................................................322.30.Abrindoprojetosjexistentes.................................................................................332.31.Compartilhando......................................................................................................33
Captulo3.Python................................................................................................................343.1.IntroduoaoPython................................................................................................343.2.OqueoPython.......................................................................................................343.3.IniciandoousodoPython.........................................................................................353.4.UtilizandooPromptdopython.................................................................................35
3.4.1.UtilizandooPythoncomoumacalculadora(utilizandonmeroseoperadoresaritmticossimples).....................................................................................................353.4.2.Inserindocomentrios(#);................................................................................363.4.3.Tipodevariveis/TiposdeDados....................................................................36
Variveis......................................................................................................363.4.4.Atribuiodevariveis.......................................................................................373.4.5.UtilizaodeconstantesevariveisnoPython..................................................373.4.6.UtilizandoStrings............................................................................................383.4.7.Visualizandootipodevariveltrabalhada(type())..........................................383.4.8.Imprimindoresultados(print())........................................................................393.4.9.Utilizandoaquebradelinha(\n)......................................................................40
3.5.Trabalhandocomblocodeinstruesefazendoumprograma................................403.6.Rodandonoshelloprograma..................................................................................413.7.Docstrings(quandoprecisaseinserirumcomentriomaior,comoumadocumentao);...............................................................................................................413.8.Trabalhandocomabibliotecaoumdulomath.......................................................423.9.Maisstring:...............................................................................................................43
3.9.1.OperadoreseStrings..........................................................................................443.9.2.AlinhamentodeStrings.....................................................................................44
3.10.Entradadedados(raw_input);...............................................................................463.11.OperadoresAritmticoseExpressesLgicas.........................................................473.12.OperadoresLgicoseOperadoresRelacionais.......................................................48
3.12.1.Trabalhandonoshellcomoperadoreslgicos.................................................483.12.2.ExpressesLgicas...........................................................................................49
3.13.EstruturadeSeleo(DecisoouCondioif).....................................................493.13.1.SeleoComposta(if..else)..............................................................................503.13.2.SeleoEncadeadaouDecisoAninhada........................................................503.13.3.Aconstruoif..elif..elseaninhados.................................................................51
3.14.Controledeescopoporidentao...........................................................................523.15.CriandoFunes......................................................................................................52
3.15.1.DefinindoumaFuno.....................................................................................523.15.2.EscopodeVariveis..........................................................................................533.15.3.ArgumentosRequeridos...................................................................................543.15.4.ArgumentoPadro...........................................................................................543.15.5.Criandoeutilizandoseuprpriomdulo........................................................55
3.16.Listas.......................................................................................................................55
-
Projeto eJovem Mdulo II: Lgica de Computadores 5
3.16.1.Introduo.......................................................................................................553.16.2.Listas................................................................................................................553.16.3.AcessandoosvaloresdeumaListas.................................................................563.16.4.OperaesbsicasdaLista...............................................................................563.16.5.AtualizandoosvaloresdaLista.......................................................................563.16.6.DeletandovaloresdaLista..............................................................................57
3.17.EstruturadeRepetio...........................................................................................573.18.EstruturaderepetioFOR;....................................................................................57
3.18.1.Funorange()................................................................................................583.19.ComandodeRepetiowhile.................................................................................59
3.19.1.OLaoInfinito................................................................................................603.19.2.Adeclaraobreak..........................................................................................603.19.3.Adeclaraocontinue......................................................................................613.19.4.Adeclaraopass.............................................................................................61
3.20.UtilizandoArquivos.................................................................................................623.20.1.Afunoopen()...............................................................................................623.20.2.Afunoclose()...............................................................................................63
3.21.Escrevendonosarquivoscomafunowrite().......................................................643.22.Lendoinformaesdoarquivocomafunoopen().............................................64
3.22.1.Posiodocursor.............................................................................................65
-
Projeto eJovem Mdulo II: Lgica de Computadores 1
Captulo1. LgicadeComputadores
1.1. Introduo
O computador uma mquina que realiza uma variedade de tarefas de acordo cominstrues especficas. uma mquina de processamento de dados, que recebe dadosatravs deumdispositivodeentradae o processador os manipuladeacordocomumprograma.Ocomputadortemdoiscomponentesprincipais.OprimeirooHardwarequeapartepalpvel (que se pode tocar) do computador. Ele composto de partes eletrnicas emecnicas.OsegundocomponenteprincipaloSoftwarequeaparteimpalpvel(nosepodetocar)docomputador.Elecompostodedadosedosprogramasdecomputador.Osoftwareumprogramaqueocomputadorusaparafuncionar.Elearmazenadoemalgumdispositivodehardwarecomoumdiscorgido,masemsimesmointangvel.Osdados que o computador usa podem ser qualquer coisa que o programa precise. Osprogramasagemcomoinstruesparaoprocessador.Algunstiposdeprogramasdecomputador:1. ProgramasdeSistemas: Programasnecessrios paraqueohardwaree osoftware
funcionem juntos corretamente. Exemplos: Sistemas Operacionais como Linux eoutros.
2. Aplicativos: Programas que as pessoas usam para realizar determinado trabalho.Exemplos:ProcessadoresdeTextos,Jogos,PlanilhasEletrnicasentreoutros.
3. Compiladores: O computador entende apenas uma linguagem: linguagem demquina.Linguagemdemquinaestnaformadezeroseuns.Jquetotalmenteimpraticvelparaaspessoascriaremprogramasusandozeroseuns,precisohaverumamaneiradetraduzirouconverteralinguagemqueentendemosemlinguagemdemquina,paraisto,existemoscompiladores.
1.2. PrincipaiselementosdeHardware
Comearemosafalarumpoucosobreoprincipalparaocomputadorfuncionar,ouseja,apartefsicadele.Semesteselementosfsicosocomputadornopoderiafuncionar.Elasinterligadasformamocomputador.
1.2.1. MemriaPrincipal
Amemria,ondeseencontramosdadoseasinstruesqueaCPUprecisapararealizarsuastarefas,divididaemdiversoslocaisdearmazenamentoquepossuemseusrespectivosendereoslgicos.ACPUacessaamemriapelousodestesendereos.
-
Projeto eJovem Mdulo II: Lgica de Computadores 2
1.2.2. ProcessadorouUnidadeCentraldeProcessamento(CPU)Aunidadecentral deprocessamento(CPUCentral ProcessingUnit), quecomumentechamada de Processador, o crebro do computador. Ele possui milhes de parteseltricasmuitopequenas.Elefazasoperaesfundamentaisdentrodosistema.AlgunsexemplosdeprocessadoresmodernossoPentium4,Core2Duo,Athlon,entreoutros.
1.2.3. UnidadesdeentradaesadaOsdispositivos deentradaesadapermitemqueocomputador interaja comomundoexteriorpelamovimentaodedadosparadentroeparaforadosistema.Exemplosdedispositivosdeentradassoteclados,mouses,microfones,etc.Exemplosdedispositivosdesadasomonitores,impressoras,altofalantes,etc.
1.3. Lgicadeprogramao
A lgica de programao necessria para pessoas que desejam trabalhar comdesenvolvimentodesistemaseprogramas,elapermitedefinirasequencialgicaparaodesenvolvimento.Entooquelgica?Lgicadeprogramao a tcnicadeencadearpensamentosparaatingir determinadoobjetivo.
1.3.1. Sequncialgica(Passoslgicos)
Agora,veremosoqueseriaasequncialgica.Ospensamentosencadeadosparaatingirdeterminadoobjetivopodemserdescritoscomoumasequenciadeinstrues,quedevemserseguidasparasecumprirumadeterminadatarefa.Podemosentofalarquesequencialgicasopassosexecutadosatatingirumobjetivoousoluodeumproblema.
1.3.2. Oquesoinstrues?
Nalinguagemcomum,entendeseporinstruesumconjuntoderegrasounormasdefinidasparaarealizaoouempregodealgo.Eminformtica,porm,instruoainformaoqueindicaaumcomputadorumaaoelementaraexecutar.Convmressaltarqueumaordemisoladanopermiterealizaroprocessocompleto,paraissonecessrioumconjuntodeinstruescolocadasemordemsequenciallgica.Porexemplo,sequisermosfazerumaomeletedebatatas,precisaremoscolocaremprticaumasriedeinstrues:descascarasbatatas,baterosovos,fritarasbatatas,etc...evidentequeessasinstruestemqueserexecutadasemumaordemadequadanosepodedescascarasbatatasdepoisdefritlas.Dessa maneira, uma instruo tomada em separado no tem muito sentido; paraobtermosoresultado,precisamoscolocaremprticaoconjuntodetodasasinstrues,naordemcorreta.
-
Projeto eJovem Mdulo II: Lgica de Computadores 3
Instruessoum conjuntode regras ounormas definidas paraa realizaoouempregodealgo.Eminformtica,oqueindicaaumcomputadorumaaoelementaraexecutar.
1.4. Definiodealgoritmo
Umalgoritmo formalmenteumasequencia finitadepassosque levamaexecuodeuma tarefa. Podemos pensar em algoritmo como uma receita, uma sequencia deinstruesquedocabodeumametaespecfica.Estastarefasnopodemserredundantesnemsubjetivasnasuadefinio,devemserclaraseprecisas.Comoexemplos dealgoritmos podemos citar os algoritmos paraa realizaodeoperaes bsicas (adio, multiplicao, diviso e subtrao) de nmeros reaisdecimais. Outros exemplos seriam os manuais de aparelhos eletrnicos, como umvideocassete,queexplicampassoapassocomo,porexemplo,gravarumevento.Atmesmoascoisasmaissimples,podemserdescritasporsequnciaslgicas.Emoutraspalavras,podemosfalartambmqueumprocessodeclculomatemticoouderesoluodeumgrupodeproblemassemelhantes,emqueseestipulam,comgeneralidadeesemrestries.Podemosdizertambm,quesoregrasformaisparaobtenodeumresultadooudasoluodeumproblema,englobandofrmulasdeexpressesaritmticas.
1.4.1. Exemplodeumalgoritmo(Sequncialgicadodiaadia)Osalgoritmosestopresentesnonossodiaadiaemcoisassimples,comoporexemplo,aoescrever,ouabrirumaporta.Temoscomoexemplodeumalgoritmo:1. Abrirumaporta.
Aproximardaporta;Abaixaramaaneta;Puxaramaanetacomelaabaixada.
2. Somardoisnmerosquaisquer.Escrevaoprimeironmeronoprimeiroretngulo;Escrevaosegundonmeronosegundoretngulo; Someoprimeironmerocomo segundonmero ecoloqueoresultadono
terceiroretngulo.Observequecadaumdoscasos, temos3aes, quedevemserseguidaspassoapassomesmo,poisonoseguimentodeumadelas,causarumerro.Porexemplo,imaginequeconstrudoumbraomecnicodeumrobparaquetodavezquealgumdeaproxime,elemesmoabraaporta.Seporacasoopasso2nosejacolocadonoalgoritmo,nominimoonossobraomecniconoconseguirabriaporta,ounopiordoscasos,elecolocarforaquepuxaramaanetaeaquebrar,ouaprpriaporta.Por isso notamos uma grande importncia os algoritmos e que eles sejam declaradoscuidadosamentepassoapasso.claroquenovamoscomearconstruindoumbraomecnico(nemovamosfazer)ououtracoisamaiscomplicada,masantesdeaprenderarealutilidadedosalgoritmos,iremosconstruirmaisalgunsalgoritmosdodiaadia.
-
Projeto eJovem Mdulo II: Lgica de Computadores 4
1.4.2. FazendoalgoritmosPraticandoalgoritmosdodiaadia
Vistootpicoacimavamostentarresolveredebateralgunstpicosemsaladeaulacomalgunstpicosdodiaadia:1. Crieumasequencialgicaparatomarbanho.2. Faaumalgoritmopararealizaramdiaentredoisnmeros.3. Crieumasequencialgicaparatrocarumpneudeumcarro.4. Crieumasequencialogicaparafazerumsanduchedequeijo.5. Faaumalgoritmoparatrocarumalmpada.
1.5. Pseudocdigo(Formagenricadeescreverumalgoritmo,utilizandoumalinguagemsimples)
Osalgoritmossodescritosemumalinguagemchamadapseudocdigo.Estenomeumaaluso posterior implementaoemumalinguagemdeprogramao,ouseja,quandoformosprogramaremumalinguagem,porexemploPython,estaremosgerandocdigoemPython. Por isso os algoritmos so independentes das linguagens de programao. Aocontrriodeumalinguagemdeprogramaonoexisteumformalismorgidodecomodeveserescritooalgoritmo.Oalgoritmodeveserfcildeseinterpretarefcil decodificar.Ouseja,eledeveserointermedirioentrealinguagemfaladaealinguagemdeprogramao.
1.6. Regrasparaconstruodoalgoritmo
Paraescreverumalgoritmoprecisamosdescreverasequenciadeinstrues,demaneirasimpleseobjetiva.Paraissoutilizaremosalgumastcnicas:
Usarsomenteumverboporfrase; Imaginar que voc est desenvolvendo um algoritmo para pessoas que no
trabalhamcominformtica;Usarfrasescurtasesimples;Serobjetivo;Procurarusarpalavrasquenotenhamsentidodbio.
1.6.1. Estruturaprincipaldeumalgoritmo
inciofim
-
Projeto eJovem Mdulo II: Lgica de Computadores 5
1.6.2. Fases
AnteriormentevimosqueALGORITMOumasequencialgicadeinstruesquepodemserexecutadas.importanteressaltarquequalquertarefaquesigadeterminadopadropodeserdescritaporumalgoritmo,comoporexemplo:
Comofazersanduche,ouento,comocalcularasomadedoisnmeros.Entretantoaomontarumalgoritmo,precisamosprimeirodividiroproblemaapresentadoemtrsfasesfundamentais:1. ENTRADA:Soosdadosdeentradadoalgoritmo;2. PROCESSAMENTO:Soosprocedimentosutilizadosparachegaraoresultadofinal;3. SADA:Soosdadosjprocessados
1.7. TiposdeDados
Osprincipaistiposdedadosso:inteiro,real,caractere,lgico. Os do tipo inteiro qualquer numero inteiro, negativo, nulo ou positivo (
125,0,5,3456);Osdotiporealqualquernumeroreal,negativo,nulooupositivo(0.27,0.01); Os do tipo lgico so conjunto de valores Falso ou verdadeiro (FALSO,
VERDADEIRO);OsdotipoCaracterequalquerconjuntodecaracteresalfanumricosesmbolos
colocadosentreaspasduplas(InstitutoFederal,Ejovem,7,FALSO).
1.8. Identificadores
Osidentificadores soos elementosbsicos deuma linguagemondetemcomofunoidentificardeformanicavariveis,funes,constantesentreoutro
1.8.1. Formaodeidentificadores
Asregrasparaaformaodosidentificadoresso:1. Os caracteres que voc pode utilizar so: os nmeros, as letras maisculas e
minsculaseounderline;2. Oprimeirocaracteredevesersempreumaletra;3. Nosopermitidosespaosembrancoecaracteresespeciais(@,$,+,&,%,!);4. No podemos usar palavras reservadas nos identificadores, ou seja, palavras que
pertenamaumalinguagemdeprogramao.Exemplodeidentificadoresvlidos:
A a nota
NOTA a32 NoTa1
MATRICULA nota_1 IDADE_FILHO
-
Projeto eJovem Mdulo II: Lgica de Computadores 6
Exemplodeidentificadoresinvlidos:5b porcomearcomnmero
e12 porconterespaoembranco
xy porconterespaoembrancoecaractereespecial
prova2n porconterespaoembranco
nota(2) porcontercaracteresespeciais()
para porserpalavrareservada
se porserpalavrareservada
algoritmo porserpalavrareservada
1.9. Literais(ouconstantes)
Constanteumdeterminadovalorfixoquenosemodificaaolongodotempo,duranteaexecuodeumprograma.Conformeoseutipo,aconstante classificadacomosendonumrica,lgicaeliteral.
1.10. Variveis
Varivelarepresentaosimblicadoselementosdeumcertoconjunto.Cadavarivelcorrespondeaumlocal, ouseja, aumaposiodememria, ondepodesearmazenarqualquervalordoconjuntodevalorespossveisdotipobsicoassociado,cujocontedopodesealteradoaolongodotempoduranteaexecuodeumprograma.Emboraumavarivelpossaassumirdiferentesvalores,elaspodearmazenarumvaloracadainstante.Onomedavariveldeveserumidentificadorvlido.
1.10.1. Declaraodevariveis
Asvariveisspodemarmazenarvaloresdeummesmotipo,demaneiraquetambmsoclassificadascomosendonumricas,lgicaseliterais.Correspondeareservadelocaisnamemria rotulada com o nome da varivel (identificador) e cujo contedo serinterpretadoconformeotipodeclarado.Exemplodedeclaraodevariveis:
inteiro idade,dias
real altura
caracter nome
lgico filho_unico
-
Projeto eJovem Mdulo II: Lgica de Computadores 7
1.11. Atribuiodevalores
Para atribuir valores a uma varivel, usaremos o operador de atribuio (lserecebe),quetemumcarterimperativo.Exemplosdeatribuio:
idade 19; altura 1.80; nome Fulano
Erroscomunsnasatribuies: Incompatibilidadesdetipos Tentaratribuirumtipodedadoaumavarivelde
outrotipo; PerdadePreciso atribuirvaloresreaisavariveisdotipointeiro,perdendoa
partedecimaldonmero; Atribuiodevalorasvariveisnodeclaradas.
1.12. ComandodeEntradaesada
ComandosdeEntradaesadasoinstruesquenospermitem,oureceberdados(Entrada)ouinformardados(Sada).OpadrodeEntradaparaoscomputadoresbsicosoteclado,delequensinformamosoqueoprogramanossolicita.JopadrodeSadaomonitor,todasasinformaesmostradasaousurioseropassadasporestedispositivodesada.Nopseudocdigonsreservamosapalavralerparasolicitardados,eapalavraescreverparaenviarumamensagemoudadoparaomonitor,soexemplosdeusocorreto:
escreverDigiteumnmero:;#Mostranomonitoramensagementreaspaslernumero;#Esperaousuriodigitarumnmero
1.13. DiagramadeBloco
Umaoutramaneirademostrarumblocodecdigosseriaporumdiagramabsico,muitoutilizadopoisumaformasimpleseeficazparademonstrarquaispassoslgicosdevemserseguidospeloprogramadorparachegaraumresultado.Com o diagrama podemos definir uma sequencia de smbolos, com significado bemdefinido,portanto,suaprincipalfunoadefacilitaravisualizaodospassosdeumprocessamento.Existemdiversossmbolosdeumdiagramadebloco.Aseguirveremosalgunssmbolosbsicos.
TERMINALIndicaINCIOouFIMdeumprocessamento
PROCESSAMENTO
Processamentoemgeral
ENTRADADEDADOMANUAL
Indicaentradadedadosatravsdoteclado.Ex.:Digiteanota1doaluno
-
Projeto eJovem Mdulo II: Lgica de Computadores 8
EXIBIR
MostraInformaesouresultados.Ex.:Mostrandooresultadodoclculo:
Nointeriordosmbolo,escrevemosalgumtipodeinformao,casocontrrioossmbolosnonosdizemnada,vejaoexemploaseguir:
Calculandoamdiadedoisnmeros:
Percebaqueseseguirmosofluxodesetas,podemossemproblemaalgum,teroresultado,quenocaso,amdiadasnotas.
1.14. OperadoresRelacionais
OsoperadoresrelacionaissoutilizadosparacompararStringdecaracteresenmeros.Osvaloresaseremcomparadospodemsercaracteresouvariveis.Estesoperadoressempreretornamvaloreslgicos(verdadeirooufalso/TrueouFalse) Paraestabelecerprioridadesnoquedizrespeitoaqualoperaoexecutarprimeiro,utilizeosparnteses.Osoperadoresrelacionaisso:
> Verificaseumtipodedadomaiorqueoutrotipo< Verificaseumtipodedadomenorqueoutrotipo== Verificaseumtipodedadoigualaumoutrotipo>= Verificaseumtipodedadomaiorouigualaumoutrotipo
-
Projeto eJovem Mdulo II: Lgica de Computadores 9
Comoexemplotemos:
a 10;b 20;a>b #retornafalsoac FALSO
Exerccio: Sabendo que A=3, B=7 e C=4, informe se as expresses abaixo soverdadeirasoufalsas.
(a)(A=C)or(B>C) ()(b)not(B=A)and((A+1)=C) ()(c)(C=(BA))orB ()
-
Projeto eJovem Mdulo II: Lgica de Computadores 10
1.16. EstruturasdeDecisoeRepetio
1.16.1. EstruturaSE...FAAISSO/SENO
Comoconhecimentodotpicoacima,nspodemosagora,comentarsobreinstruesquerealizamtestesentrecaracteresevariveisetambmsobrelaos.Nonossopseudocdigoapalavrareservadaparaumainstruoquerealizaumtesteose,seuuso:
sefaaisso:
seno:
NOTA:Percebaqueainstruoseno,noobrigatria,poisemalgunscasovocpodenecessitarfazersomenteumtestequenotenhanenhumcdigoaserexecutadoseotesteforfalso.Osmbologrficoquerepresentaumaestruturadedecisosimplesmostradonafiguraaseguir. Por um lado, o algoritmo segue se a condio testada dentro do smbolo forverdadeira,seforfalsa,oalgoritmoseguirporoutrocaminho,oqualcontmumdiferenteblocodecomando.
DECISO
Representaumtesteaserfeito
Aestruturadedecisosenormalmentevemacompanhadadeumcomando,ouseja,sedeterminada condio for satisfeita pelo comando se ento execute determinadocomando, se tal condio no for satisfeita, execute outro determinado comando.Imagineumalgoritmoquedeterminadoalunosomenteestaraprovadosesuamdiaformaiorouiguala5.0,vejanoexemplodealgoritmocomoficaria.
semedia>=5.0faaisso:escreverAlunoAprovado
seno:escreverAlunoReprovado
NoFluxogramanstemosaseguintesequncialgica:
-
Projeto eJovem Mdulo II: Lgica de Computadores 11
Exerccio:Elaboreumdiagramaquesatisfaaosseguintespontos: Leia4(quatro)nmeros; Someoprimeirocomosegundonmero; Someoterceirocomoquartonmero; Seaprimeirasomaformaiorqueasegundasomaescrevaoresultadoefinalizeo
programa; Seno,imprimaasegundasomaefinalizeoprograma.
1.16.2. EstruturaEnquantoUtilizamos os comandos de repetio neste caso a instruo enquanto quandodesejamosqueumdeterminadoconjuntodeinstruesoucomandossejamexecutadosumnmerodefinidoou indefinidodevezes,ouenquantoumdeterminadoestadodecoisasprevalecerouatquesejaalcanado.Empseudocdigosuasintaxe:
enquantofaa:;
fim_enquanto;
Nestecaso,oblocodeoperaesserexecutadoenquantoacondioxforverdadeira.Otestedacondiosersemprerealizadoantesdequalqueroperao.Enquantoacondioforverdadeiraoprocessoserepete.Podemosutilizaressaestruturaparatrabalharmoscomcontadores.Emdiagramadeblocoaestruturaaseguinte:
1.16.3. EstruturaPARADEATFAAOslaoscontadossoteisquandoseconhecepreviamenteonmerodevezesquesedesejaexecutarumdeterminadoconjuntodecomandos.Ento,estetipodelaonadamaisqueumaestruturadotadademecanismosparacontaronmerodevezesqueocorpodolao(ouseja,oblocodecomandos)executado.Asintaxeusadaempseudocdigoparalaoscontadosmostradaaseguir:
paradeatfaa:
fim_para
SupomosquenossoPARA,irfazerumincrementonade1umaunidadeatquesejaatingidoovalor.
-
Projeto eJovem Mdulo II: Lgica de Computadores 12
Emtermosdefluxograma, j vriasrepresentaespossveise, at omomentonohconsensoquantoformamaisconveniente.
Algumasobservaesinteressantesaseremcomentadas: necessariamente umavarivel, umavez que seu valor alterado a cada
iterao(voltadolao); epodemserconsideradasconstantesouvariveis.Nosegundocaso
(variveis), algumas linguagensdeprogramaoprobemqueseusvalores sejammodificadosduranteaexecuodolao;
-
Projeto eJovem Mdulo II: Lgica de Computadores 13
Captulo2. Scratch
2.1. IntroduoaoScratch
ScratchumanovalinguagemdeprogramaodesenvolvidapeloLifelongKindergartenGroupnoMITMediaLab(http://llk.media.mit.edu),comoapoiofinanceirodaNationalScienceFoundation,Microsoft, IntelFoundation,Nokia,econsrciosdeinvestigaodoMITMediaLab.OScratchpermitecriarastuasprpriashistriasinterativas,animaes,jogos,msicaearteecompartilharlasatravsdewebsites.Aprogramao efetuadaatravs dacriaodesequnciasdecomandossimples, quecorrespondem a blocos de vrias categorias, encaixados e encadeados de forma aproduziremasaesdesejadas.OsprojetosScratchsobaseadosemobjetosgrficoschamadosSprites.PodesemudaraaparnciadeumSprite,dandolheumnovotraje,oufazloparecersecomumapessoa,umobjetoouatmesmoumanimal.Ainda,Podeusarqualquerimagemcomotraje:podesdesenharno"EditordePintura",importarumaimagemdodiscorgido,ouarrastarumaimagemapartirdeumsite.Podesedar instruesaumSprite, indicandolheparasemover,reproduzirmsicaoureagir a outros Sprites. Para isso basta criar sequncias de comandos, arrastandoos eencaixandoosemblocos,talcomosefossempeasdeLegooudeumpuzzle. Quandoclicarduasvezes(duploclique),oScratchexecutaosblocosapartirdotopodoscriptparaofinal.Em resumo, o Scratch um software que permite criar histrias, jogos e animaes.Istotudodeformasimples,animandoomovimentodeobjetos.
2.2. AmbienteouInterfacedeprogramaodoScratch
OambientedeprogramaodoScratch,umambientequepermiteamontagemdeumalgoritmodeprogramaoatravsdediagramadeblocos,onde,diferentementedasoutraslinguagensqueseensinalgica,ondetemqueserdigitadocomandos,ousuriodoscratchtemcomoverasequnciadeaestendomuitomaiscontrolesobreoquepoderfazer.
-
Projeto eJovem Mdulo II: Lgica de Computadores 14
QuandoabrimosoScratch,entramosdiretamenteparaomododeEdio,quenospermitecriaroumodificarprojetos.VeremosagoraumpoucosobreateladoScratcheosseusprincipaisFunes.ObserveafiguraaseguirareadetrabalhodoScratch.Categoriadecomandos Oscomandossodivididosemcategoriasesoelas:Movimento,aparncia,som,caneta,controle,sensores,operadores,variveis;Blocos de comandos Onde esto agrupados os comandos de uma determinadacategoria;OpesparareadeScripts OpesprincipalmenteparareadeScripts,trajesesons;readeedioeconexodeScripts(readeScriptsoureadecomandos) Ediodoobjetoselecionado:Nestareafeitaaprogramaoeauniodosblocos;Palco ondeosobjetossocolocadoseondepossvelveroresultadodaprogramaocriada.Oobjetoinicialqueaparecenopalcoogato;Modosdevisualizao Soostiposdevisualizaodopalco;IniciareParar SoosbotesparainiciarepararosScripts;BotesdenovoSprite Criaumnovopersonagemouobjetoparaoprojeto;Objetos usadosnaanimao(Lista deSprites) Aparecemminiaturas de todos osSprites.CliqueparaescolheseeditarumSprite.Oobjetoemedioficaselecionado.
2.2.1. MenuGeralVeremosalgunsdetalhesdomenugeralcomomostradonatelaabaixo:
Seleodeidioma alterarparaoidiomadeprefernciadousurio;Salvarprojeto salvandooprojetodeformarpida;Compartilhar projeto compartilhamento do projeto para a comunidade de formarpida,colocandooonline.
-
Projeto eJovem Mdulo II: Lgica de Computadores 15
Dentrodomenugeraltemososseguintesmenus.MenuArquivo:Novo Abreumnovoprojeto;Abrir Abreumprojeto;Salvar SalvaroProjetoSalvarcomo SalvaroprojetocomoutronomeImportarprojeto Importaumprojetojexistenteparaumprojeto atual;Exportarprojeto Exportaoprojetoatual;Notasdoprojeto Inserenotassobreoprojeto;Sair FechaajaneladoScratch;MenuEditar:Desfazerapagar Permiterecuperaroltimocomando,blocoouSpriteeliminado.Iniciar passo a passo Mostra o passo a passo da execuo do programa.Marcarpassosimples... Fazcomqueopassoapassopossaserfeito maisrpidooumaislento.Comprimirsons comprimeossonsusadosnoprojeto,parareduzirotamanhodoprojeto.ExibirBlocosdeMotor:MenuCompartilhar:Compartilharoarquivoonline permitefazerouploaddoprojetopara o site, para ficar disponvel a todos os seus visitantes.IraositedoScratch VaiatapginadoScratch
2.2.2. AlgunsElementosdoScratchFalaremosagoramaisdetalhadosobrealgunsdoselementosimportantesdentrodajanela:
2.2.2.1. readecomandooureadeScript
Area decomandoser ondemontaremosos nossos scripts quedarovidaanossaprogramaoquepodesetornarporexemploumjogo.Ao ladotemosumexemplodeumgrupodecomandosqueforam agrupadas e montado dentro da rea de comandos. Maisadianteaprenderemoscomomontarumblococomoeste.
2.2.2.2. Palco
Opalcoondeficaremostrarashistrias,jogoseanimaes.OsSpritespodemmoverseeinteragirunscomosoutrosnopalco.Opalcotem480unidadesdelargurae360unidadesdealturaeestdivididoentreascoordenadasXeY.Ocentrodopalcotemascoordenadas0em"X"e0em"Y".Parasaberaposiodeumdeterminadopontodentrodopalco,movaomouseatopontodesejadoeobservelogoabaixodopalconocantoinferiordireito.Pela imagemabaixo,indicasequeocursorestnopontoX:100eY:50.
-
Projeto eJovem Mdulo II: Lgica de Computadores 16
2.2.2.3. Mostrandosistemadecoordenadaseorientaes
Comofaladoacima,opalcotem480unidadesdelargura.e360unidadesdealturaedadopelosistemaortogonalXY.Podemosperceberistomelhoratravsdafiguraaoladoquemostrabemmelhorestesistemadecoordenadas.Este sistema, o centro dado a posio X:0 Y:0. Sepercebermos bemna figura, notamos que, para cima, o YficarpositivoeparabaixooYficarnegativo.AmesmacoisaocorresemelhantementeparaacoordenadaY.Paraaesquerda,ficaroXnegativoeparadireitaficarpositivo.Para sistema de direes, como mostra a figura ao lado, mostra omovimentoemgraus.atravsdasdireesquevamosgiraronossoobjeto dentro do palco. Guarde bemestes duas ultimas figuras quemostramtantoosistemadecoordenadascomoosistemadedirees.Iremosperceberparaoqueelasrealmenteservemnaprticalogologo.
2.2.2.4. Sprite
OSpritequalquerobjetodoScratch.ObservequeonossoSpriterepresentadoporumgato,portanto,todavezqueabrirmosoScratch,aparecerestafigura.Podemos ter vrios Sprites dentro do palco, onde eles podem aparecer,desaparecerefazerdiversasaesondeenvolvemoutrosSpritesparaformarumaanimaoouumjogo.Maisafrenteaprenderemosmelhordecomotrabalharcomosobjetos,podendoaumentalosoudiminuilos,duplicalosouapagalos,ouat outrasaesimportantes.
2.2.2.5. Opesderotao
Asopes de rotaodeterminamcomoo Traje vai secomportar.PorexemploseelepodegiraramedidaqueoTraje muda de direo, ou ser s para a direita ouesquerdaouseelenovaiterrotaoalguma(oTrajenuncaroda,mesmoqueoSpritemudededireo)
2.2.2.6. Informaesdoobjeto
Informaprincipalmentesobreonomedoobjeto,aposiodeleemXeemY,assimcomoadireo.
2.2.2.7. Opesparareadescript
compostodetrsabasqueseroestudadasposteriormente:Estasabasso:Comando(ondeficarooscomandoparaonossoSprite),Trajes(Ondeficaroostrajeseondepodemosacrescentaroutiralos)eSons(ondeficaroossonsquepodemosusar).
-
Projeto eJovem Mdulo II: Lgica de Computadores 17
2.2.2.8. Encolher/Crescer/Apagar/DuplicarObjeto
Comomostranafiguraao ladopodemoscrescerouencolherumobjeto assim como apagalo ou duplicalo. Clique emumdestasopeseemseguidacliquenospriteevejaoqueacontece.
2.2.2.9. ModosdeApresentao
Define comoo palco ser apresentado, assimele poder ser apresentadoempequenotamanho,comopalcocheioouemmodoapresentaoondeeleteremtodasuatelaaapresentaodopalco.
2.2.3. Categoriadecomandos
Comofoiditoanteriormente,temosumgrupode8categoriasdecomandoseelasso:Movimento DeterminaomovimentooSprite,fazendoelesemovimentarpararea.Aparncia Serve para principalmente substituio dos trajes, fazer aparecer oudesaparecerouaindafazerquequeapareadilogos.Som Temcomoprincipalfinalidadeimportarsonsoumsicas.Caneta Responsvel pelos traos deixados pelo objeto que est se movimentando,podendosermodificadocor,espessuraetonalidade.Controle Possuicomandosprdefinidos,responsveispelaestruturalgicadeconexoentreoutroscomandos.Sensores Serveparapercebercores, distncias e sonormalmentecombinadoscomoutroscomandos.Operadores Serveparafazeroperaesmatemticasentreoutros.Variveis Serveparacriar variveis paraarmazenar umdeterminadovalor paraserusadoposteriormenteassimcomotambmaquestodecriaodelistas.
2.3. TiposdecomandosdoScratch
DentrodasoitocategoriasdisponveisnaPaletedeComandos,htrstiposprincipaisdecomandos:
ComandosSimples Estescomandostmencaixesnotopoenofundo,como .Algunsdestescomandostmreasondesepodeescrevernmeros(comoporexemploo
"10"docomando )ouescolherumitemapartirdomenupulldown(talcomo"miau"nobloco).Algunsdestescomandostmumformatoemformade"C",onde
podesinseriroutroscomandos,comoporexemplo .
Cabea Estescomandostmumtopoarredondado,p.ex. .Destinamseasercolocadosnotopodeblocosdecomandosaguardandoporocorrnciastalcomo"clicarnabandeiraverde",paraqueassimsejamexecutadososrespectivosblocosdecomandos.
-
Projeto eJovem Mdulo II: Lgica de Computadores 18
Valores Estes comandos, tais como e destinamse aseremencaixadosemcertasreasdoscomandossimples.Valoresdeformatoarredondado
(como ou)indicamnmerosoulistas,epodemserusadosemcomandoscomreasarredondadasouretangulares(comoou).
Osvalorescomextremidadespontiagudas(como )indicamvaloresbooleanos (verdadeiro ou falso) e podem ser inseridos em comandos com espaos
pontiagudosouretangulares(como e ).
Algunsvalorestmumacheckboxjuntoaosmesmos.Assinalandoacheckbox,ovalorficavisvelnoPalco,sendoatualizadodinamicamentemedidaqueformudando.Osvalorespodemsermostradosemdiversosformatos:
umpequenomostradorcomonomedoindicador; ummostradorlargo,semqualquernome; comumsliderquepermitealterarovalor(apenasdisponvelparavariveis).
2.4. MudandooSprite(ListadeSprites)
QuandooScratchaberto,nopalcojestaparecendoogato.Masnemsempresedesejausaloeentopossvelinseriroucriarumnovoobjeto.Damesmaforma,possveltervriosobjetosemumaprogramao.Vejaaoladocomoapareceumnovoobjetonopalco:Paracriarouinserirumnovoobjetovoc deveclicaremumadasseguintesopes:Pintar umnovo objeto Abre umeditor que permite pintar edesenharumobjeto.EscolhaumSpritedoarquivo Permiteinserirumarquivodeimagemdocomputador.Pegarobjetosurpresa Clicandonesteboto,surgeumobjetosurpresanopalco,ouseja,apessoanodeterminaoobjetoquesurgir.OsSpritesficaronalistadeSprites, ondepodemosvisualizalosemodificarconformedesejarmos.
2.5. Movendoumcomandoeexecutandoo
De agora em diante vamos comear a estudarprimeiramente os comandos bsicos do scratch edepoispassaraconhecermelhorsuasfunes.Primeiramente devemos (como mostra a figura aolado)mover,ouarrastarumcomandoparaareadescripts.Paraissosclicaremcimadoobjetodesejado,seguraremovloparaareadeScript.Quando abrimos o Scratch ele abre diretamente naABAMovimento.Observeafiguraacimaetentefazeromesmo!Cliquenocomandomova10passosesoltenareadescript.
-
Projeto eJovem Mdulo II: Lgica de Computadores 19
Para executar este simples comando, cliquesobre ele. Observar que aps o clique nocomandomova10passos,nossoSpritesemover.Observequeascoordenadasmudarotambm.Observequealgunscomandos, comoosdoexemploacimatemcamposdeedio,porexemplo eparaalterarovalor,clicasenanoespaodareabrancaeescreveonovonmero.Portantopratiqueclicandononumero10,ealterepara10.PressionenovamenteocomandoeperceberquenossoSpriteeascoordenadasvoltaroparaolugardeorigem.
2.6. TrabalhandocomaabaMovimento
J que sabemos agora como mover umcomandoparaareadescriptsesabemoscomoexecutalo vamos agora aprender sobre cadaumadasabas,eseusrespectivoscomandos.Conforme nossa progresso no contedo,faremos exerccios que pegar elementos deoutras abas para aprimorar mais nossosconhecimentos. Comearemos pela abaMovimento.Esta aba realmente onde podemos fazernossos Sprites andarem, ou seja semovimentarempelopalco.
2.6.1. TrabalhandocomomovaComearemos a usar o comando mais comume primordial para o Scratch, ou seja omova.Ocomandomova,comovistoacima,ocomandoquedomovimentoparafrenteouparatrsdonossoSprite.Seforparafrente, colocaropassopositivo,porexemplomova10passos, casoparatrs,ouseja, decostasnocasodonossoSpritepadro,colocasemova10passos.Paratestar,altereonmerodepassosdocomandoqueestnareadeScripteobserveoqueacontecenareadosistemadecoordenadas.Paraalteralo,cliqueumavezemcimadonumeral10esubstituapor10.
2.6.2. TrabalhandocomovirePercebesequecomomova,onossoobjetosomentesemovimentanoeixoX(ouseja,parafrente e para trs). Precisamos de alguma ferramente que faa com que ele faa omovimentoentreoeixoYtambm.ParaissoiremosutilizararotaoatravsdocomandoVire.Lembrese que temos umsistemade coordenadas e de direo. Visto estes 2 sistemasanteriormente,podemosdizerqueocomandomovaestdiretamenteligadoaosistemadecoordenadaseocomandovireestligadodiretamenteligadoaosistemadedireo,ouseja,comoviretrabalhamosogiro.Estegiroserdadoemgraus.Paratestar,movaosdoiscomandosdevire(Figuraaolado)paraareadeScript.FaaotesteclicandoalgumasvezesnoprimeirovireeobservequenossoSpritevaigirando.ObservetambmemquantosgrausestoobjetonasinformaesdoSprite.
-
Projeto eJovem Mdulo II: Lgica de Computadores 20
Ateno:VolteparaotpicoMostrandosistemadecoordenadaseorientaesepercebaqueosistemadegraus,nocorrespondeaoquenormalmenteusamos.Tentegiraroraparaumlado,horaparaooutroevejaporfimoqueacontece.Apsfazerostestes,deixeoSpritenadireo90.
Dica:Podemostestarousodeumcomandosemcolocarnareadescript.Paraisso, somente clique em cima em um dos dois comando( Pode clicarprimeiramentedodecimaedepoisnodebaixo). Observeoqueaconteceedepoisvolteparaadireo90.
2.6.3. AlterandoonumerodegrausepassosnocomandoComojfoicimentadonotpico2.4.1,podemosalterarouonumerodepassosouonumerodegraus.Aprimeiraalternativamodificaronumerodiretamentenoprprioblocodecomandos.AsegundaalterardentrodareadeScript.Adiferenaentreaprimeiraeasegundaque,semodificarmosdentrodoblocodecomandos,searrastarmosocomandopara dentro da rea de Script, todos eles sairocomaquele numero. Por exemplo, setrocarmos o 10 de mova10passos por 20, qualquer comando igual a este quearrastarmos para rea de Script, sair no mais com o 10 e sim com o 20.Diferentemente , se alterarmosumque j est dentrodareadeScript, ser alteradosomente aquele comando. Estas alteraes serviropara outros comandos que usamomesmoconceito.
2.6.4. MovendoevirandoJquetemosanooinicialdomovanpassoseviremgraus,ondeNeMsonumeraisquaisquerquevosimbolizaronmerodegrausepassodados,vamoscomearadarumamovimentaomaioraonossoSprite.Movadiversoscomandodemova10passosevire15graus,modificandoparavaloresdiferentes.CliquenelesevobservandoocomportamentodoSpritesemovimentandonatela.
2.6.5. MostrandocomovoltarparaaposioinicialPossivelmentecomoseuSpritedevetersemovimentadobastantenoexerccioanterior,eledeveestartotalmentedesorientado,porexemplo, imaginequenossoSpriteest com:x:191y:177direo: 130(Faao teste paraver ondenossoSprite vai estar). Se forobservar,podenotarquenossoobjetoesttotalmenteperdido.SeriaumadasmaneiradearrumarmelhornossoSprite,clicarneleearrastarparax:0y:0,poremiriaficartrabalhoso,terqueficarmudandoonumerodegraus,eaindasimumpoucodasvariveisXeYparachegarnadireoecoordenadasexatasx:0y:0direo:90.Vamos facilitar as coisas usando mais comandos dentro da abamovimento.Observeafiguraaoladoevejaestescomandos.ArrasteosparaareadeScriptecliqueemambos.Comopercebe,aformafcildevoltaraposioinicial.Veremos que daqui para frente, alguns comandos tem "pulldown", por exemplo umcomandoqueveremosmaisafrentecomo.Cliquenasetadocomandoaponteparaadireoparaveromenu.Escolhaaopodesejadaclicandonela.
-
Projeto eJovem Mdulo II: Lgica de Computadores 21
2.6.6. Trabalhandomaiscomaposioeaorientao
Podemosexploraroutrosblocosaindadentrodemovimento,comoporexemplo: FazercomqueonossoSpritedeslizeporumacertaquantidadedesegundospelo
palco; Fazercomqueelemudeovalordexe/ouyandandoumacertaquantidadedepassos; Fazercomqueelemudeaposiodoxe/ouypelovalordeterminado; FazercomquesejamostradodentrodopalcoaposiodeXe/ouYe/oudireo; FazercomqueseoObjetotocarnabordaelevolte;
Volteaotpico2.4.etentedescobrirquiassooscomandosqueexecutamcadaumadasaesacima.DialoguejuntocomseuscolegasejuntocomoseuInstrutoramelhormaneiradeutilizalos
2.7. Trabalhandoemblocos
Atagora,trabalhamospraticamentecomcomandoindividuais,porem,teremosqueagoracomearaaprendercomojuntalosparaformarumScript.Ouseja,paraficarmaisclaro,umScript vai ser umconjunto de aes que vamos reunir para fazer nosso Sprite semovimentar.Paraissovamosabrirumnovoprojetosemsalvaroanterior.CliqueemArquivo Novo. Aparecerumajanelaparasalvaroprojetoatual,poremcomonovamosutilizalo,cliqueemnoeaparecerumnovoprojeto.Agora,arraste2blocosdeaesecoloqueumbemprximoaooutro.Quandosoltamos,perceberquecomosefosseumimos2ficarogrudados.Observeafiguraaoladoemonteestegrupodeaeseexecute.Percebaoqueacontece.
2.8. Retirandoumaaodeumbloco
Paraaretiradadeumaaodoblocosimples,segureestaaoepuxeaparabaixo,porexemploeperceberqueelevaisedesprenderdobloco.
2.9. Removendoumaao
DigamosquenoqueremosmaisumaaoouumScript(quecomoj sabemos umconjuntodeaes).PararemoverdareadeScript,simplesmentepegamosaaoouobloconomaisdesejadaepuxamosdevoltaparaoblocodeaes.Comisso,perceberqueogrupoouaaovaidesaparecer.
2.10. Renomeandoumobjeto
ObservedentrodareadeinformaesdeScriptquetemosescritoobjeto1.Paraalteraronome,porexemplo,queremoscolocaronomedoobjetocomogato.Cliqueemcimaedumduploclique. Modifiqueparaonomedesejado. Observedentrodareadeobjetosusadosquetambmmodificouonome.
-
Projeto eJovem Mdulo II: Lgica de Computadores 22
2.11. Trabalhandocomabaaparncia
2.11.1. TrabalhandocomTrajes
Cada Sprite pode ter diferentes aspectos que so como de fossem partes de ummovimentos,oquechamasedeTrajes.ClicandosenaabaTrajes.Clicandonoseparador"Trajes"podesverquantosaspectosoSpritetem.Podemosatravsdisso,PintarumnovoTraje,Importarumnovotrajeouaindausaracmera(Webcam)parafotografarparaotraje.CasoqueiraseMexernoSprite,podemos,EditarouCopiar,ouApagaroSprite.Com os trajes e os comandos do exemplo abaixo, podes criaranimaes.Paraaopodetrajetemososcomandosmudeparaoprximotrajeeprximotraje,almdepodermostrarnopalcoqualotrajequeestsendousado(Observeosnaabaaparnciaetentemanipulaloscomeles).PosteriormenteabordaremosmelhorsobrecomomanipularmelhorcomosSprites.
2.11.2. TrabalhandocomDigaePensePodemos fazer nossos objetos FalaremouPensarematravs dos comandosdiga epenseondepodeserfaladorapidamenteouporalgunssegundos.Arrasta para a rea de Blocos umdos quatro comandos da categoria "Aparncia" quepermitemacriaodebalescomasfalas.Podesalteraroquequeresqueospritedigaoupensenoprpriocomando.Podesdefinirotempodeduraodasfalas,ouusarcomandossemtempodefinido.
2.11.3. MudandoosefeitosPodemostervriostiposdeefeitosparaalteraronossosprite:Cor ModificaacordonossospriteOlhodepeixe Modificaoformato,fazendocomqueseovalorcolocadoformuitogrande,ficacomaformadeumolhodepeixeGirar Deforma nosso sprite em forma deredemoinhoPixelar FazcomquenossospritededeformeatdesaparecerdependendodoqueforfeitoMosaico FaznossoobjetosemultiplicarempequenostamanhosBrilho ModificaobrilhodonossospriteFantasma Fazcomquenossospritevdesaparecendo.Pararealizarumdestasaesacima,arrasteparaareadescriptMudeoefeitoeescolhaoquequeresqueacontea,usandoomenu"pulldown"(Observeafiguraaolado).Caso esteja s testando, ou no seu projeto queira tirar(limpar) os efeitos, clique nocomando
-
Projeto eJovem Mdulo II: Lgica de Computadores 23
Dica:Tantonestesblocosdeefeitocomoemoutros,podemosterblocoscomporeoutroscompara.Porexemplo:Naabamovimentotemosobloco mudexporemudexpara.Nesteprimeirocaso,cadavezqueclicamosnobloco,ovalordexvaisendoincrementado,dependendodoseuvalor,ouseja,digamosque temos mude x por 10, ento toda vez que clicamos, o x vai sendoincrementadoem10. Comomudexparaovalor dex ser constanteparaaquelevalordeterminado,ousejasecolocarmosumblocomudexpara10,noimportaquantasvezesclicamos,poiselesempreficarnaposio10.
2.11.4. Modificandoostamanhos
Modifica o tamanho do nosso Sprite. Estes comandosequivalem ao crescer objeto e encolher o objeto(vistoanteriormente).PodemosmostrarnoPalcoaporcentagemqueeleest,alterarparacertaporcentagemotamanho,ouqueelevaumentandoaoclicar.
2.11.5. Aparecendo/desaparecendo
EstescomandosfazemcomqueoScriptapareaedesaparea.
2.11.6. Trabalhandocomcamadas
Para os casos que precisase alterar a ordem dos sprites, porexemplo,umsobreporooutroouumaforma,temosaopodefazerissoatravsdosdoiscomandosaolado,ondepodemosfazercomqueonossoobjetosubaumacamada(primeira ao), oupodemosdeterminaronumerodecamadasaseremalteradas(atravsdasegundaao)
2.12. Trabalhandocomaabadesom(adicionandosom)
Japrendemosatagoracomodarmovimentoparaonossoobjetoemodificarparmetrosdaaparnciadele.Vamoscomearacolocarsonsnestenossoobjeto.PodemosprimeiramenteimportarumarquivojexistentedaprpriabibliotecadoScratchougravarumsom,podendoexecutar,pararouexcluir.
2.12.1. TrabalhandocomocomandoToqueosom
Comearemoscomocomandotoqueosomondetocarosomquequeremos,sejaeleumagravaofeitaouumsomjgravado.Parausarosomescolhidonasuaprogramaoescolhaoblocotoqueosomeencaixenoseuscript.
Ateno:seosomnofuncionar,verifiqueseesterecursofuncionanoseucomputador(seosomestligadoeexistemcaixasdesomfuncionando).
-
Projeto eJovem Mdulo II: Lgica de Computadores 24
2.12.2. TrabalhandocomToqueotamboreToqueanotaParacolocarsomnoscript(umsomdeinstrumentoou outro), voc pode usar o comando Toque otambor.Eleficadisponvelnacategoriasom.Voc podeusaresteblocodecomandosozinhoouagrupado com outros comandos, como mostradoanteriormenteemoutrosscripts.ComojsabemosesclicarearrastaroblocoparaareadeediodeScripts.Seforocaso,encaixeesteblococomosjexistentesnoscript.Para ver o funcionamento, d um duplo cliquesobreogrupodeblocos.Para escolher o som desejado, clique na setadestacadaeescolhaentreasopesdomenu.
2.12.3. Trabalhandocomvolumeeritmo
2.13. Ensaiandoumpdedana
Aprendemos anteriormente os recursos de movimento e toque. Usaremos estesconhecimentosparafazerummovimentoqueenglobamovimentoesom.Primeiramentearraste2comandosmovaeumcomandotoqueotambor.Altereumdosmovaparaovalor10,comomostraafiguraabaixo.
Depoistambm possvelacrescentaroutroblocodetoqueotamborapsosegundomovimento.Vamosentoincrementarumpoucomais,ecolocarumoutrotoque,comomostraaimagemabaixo.DumduplocliquesobreoScriptepercebaoqueacontece.
Agora, implemente o Script semelhante aoda figuraao lado,introduzindo oblocosemprelocalizadonasecoControle.Cliqueemcimaevejaoqueacontece.Parainterromperoprogramauseobotovermelhonocantosuperiordireitodopalco,oucliquenovamentesobreoscript.
2.14. Trabalhandocomaabacaneta
Atagoraaprendemoscomomodificaraaparnciadonossopersonagem,fazelofalareattocar umsom.Agora importantecomear a pensar: comoseria fazer comque fiqueregistadonatelaalgoquandoonossoelementosemexer?Porexemplo,podemosquererdesenharfigurasgeomtricas,comoquadradostringulos,entreoutros.Porissovamosaprenderumpouquinhosobreaabacanetaeseuscomponentes.
-
Projeto eJovem Mdulo II: Lgica de Computadores 25
2.14.1. UsandooAbaixar,levantar,carimbeelimpe
Estassoasprincipaisaesdestaaba.Atravsdelaspodemosfazercomqueonossoobjetoaopassar,deixealgumrastrodasuapassagem,ouemdeterminadomomentodeixedepassar(comonaconstruodeumcaminho), usar o carimbe, que marca a passagem do elemento(marcadonopalcoumaimagemdoelemento)ouaindalimpartudo,deixandoarealimpa.
2.14.2. Mudandoacor,otomeotamanhodacaneta
Podemosalemdefazernossoobjetodesenharnatela,podemosalterarosparmetrosdestalinha,porexemplo,mudaracordacaneta para uma cor especifica, ou variar o valor dacaneta(utilizaros3primeiroscomandoaolados).possvelaindafazeramodificaodotomdestacaneta(paraisso, utilize os 2 blocos seguintes ao lado), onde vai variar atonalidadedacorescolhidaparamaisescuraoumaisclara.Por ultimo, mudar o tamanhodo trao, podendoser maior oumenor,dependendodovalorregistrado.
2.15. Trabalhandocomaabacontrole
Comoprprionomejsugere,aabacontrolepermiteaquemestfazendoosscriptsumcontrole maior sobre o que est fazendo, onde poder fazer comque um bloco sejainicializadoaopressionarumatecla, oudesdea inicializaodetodooprograma.Atoutras aes comoexecutar vrias vezes umadeterminadaao. Veremos abaixo maissobre.
2.15.1. Usandooquando
Atravsdestescomandos,possvelnormalmenteiniciarumbloco quando por exemplo, o programa for iniciado, ouquando o objeto for pressionado, ou ainda quando forpressionadoumatecla(determinadaporquemfezoscript).Aoladotemososprincipaiscomandosqueficamnotopodecadascript.
2.15.2. Usandooscontrolesse/seseno
Atravsdestesblocospossvelfazerotestedecondies,porexemplo,umcasobemclssicoseriafazeraverificaoseumobjetoesttocandonooutro,ou na borda (Ser visto mais a frente). Portanto nestes comandosnormalmente existemumconjunto deoutros dentro, ondese satisfazer acondio,realizaroscomandosdentro,seno,norealizar.
-
Projeto eJovem Mdulo II: Lgica de Computadores 26
2.15.3. Usodocontrolesempre
Comofoivistoanteriormente, possvelprogramarnoScratchqueumaoumaisaescontinuem acontecendo e se repetindo por tempo indeterminado. Para isso se usa ocomandoSEMPRE,disponvelnacategoriaControle.Clique e arraste o bloco SEMPREpara a rea de edio descripts.EncaixeogrupodecomandosdentrodoblocoSEMPRE.Paraarrastarumconjuntodeblocos, cliquesobreoprimeirobloco(notopodoconjunto)earrastetudo.ParapararaprogramaoapsusarocomandoSEMPRE,cliquenobotovermelhoquesignificaPararTudo.
2.15.4. Usandooscontrolesrepita/repitaat/semprese
Ocomandosemprese,realizadosemprequeacondioseguinteforverdade.Porexemplo,seriadizerSempreseteclaxforpressionada,ouseja, s ser executadoo que tiver dentro se o que tiver depois forsatisfeito. Neste caso, diferente do caso acima, pois o bloco serexecutadosempre,masnestecaso,elevaiexecutaroquetemdentrodoblococadavezqueateclaforpressionada.Acondiorepitajumpoucodiferente.Orepitafazcomqueumaao dentro do bloco seja realizada N vezes, ou por exemplo, sejarepetida at (repita at) uma tecla for pressionada(neste caso quando a tecla forpressionadaaaoirparar)
2.15.5. Usandoopareeespere
Estes comandos (pare e espere) normalmente servem, comoo prprionomejdizparapararouparaqueespereatumadeterminadaao.Oesperepodeservirparaqueseesperetantossegundos,ouparaesperaratqueumadeterminadacoisasejafeita(pressionadoobotodomouseoupressionadoumatecla.)
2.16. Iniciandoeparandoumprograma
Umadasmaneirasdeiniciaroupararosprogramas atravsdosbotes onde,abandeiraverde,iniciaoprogramaeobotovermelhoparaumprograma.OScratchtambmpossuicontrolesparaoinciodaexecuodosscripts.Umexemploabandeiraverdequeficasobreateladevisualizaodasprogramaes:elapodeserusadaparainiciarofuncionamentodeumscript. Paraisso necessrioquesejacolocadono
scriptoblocodecontrolequeindica .
Cliquenoblocoe arraste paraa readeediodescripts.Encaixeoblocosobreoconjuntojexistente,seforocaso.Estecontroledeveseroprimeiroemumgrupodeblocos,poiselequedeterminaoinciodestaexecuo.
-
Projeto eJovem Mdulo II: Lgica de Computadores 27
Paratestar,cliquesobreabandeiraverdequesignificaIniciarScripts.A BandeiraVerde forneceumamaneiraconvenientedeiniciarvriosscriptsaomesmotempo. Clica na Bandeira Verde para iniciar todos os blocos com no topo.No"MododeApresentao"aBandeiraVerde,surgecomoumpequeno conenocantosuperior direito do ecr. Pressionar a tecla "Enter" temo mesmo efeito que clicar naBandeiraVerde.
2.17. UsandoTeclasDetectandoteclaspressionadas
Parainiciarumscript,almdeusarabandeiraverdepossveldeterminarumatecladoteclado que funcione como disparadora do script. Desta forma, quando a tecla forpressionadaoscriptiniciasuaexecuo.Paradeterminarqueo inciodaexecuoser definidoporumatecla,vocprecisacolocarnoinciodeumscriptocontrole.Arrasteoblocoparaareadeediodescripteoencaixenoinciodeumconjuntodeblocos.Para determinar qual tecla do teclado ser usada para iniciar oscript, clique na seta(ver imagem ao lado) e escolha a opodesejada.Voc podeusarumcontrole inicialdeScriptdiferenteparacadaconjuntodeblocos. assimquesefazparadeterminarmovimentosdiferentesdeumobjetodeacordocomocliquenassetasdedireodoteclado.
2.18. Mudandoacordeobjetoquandopressionadadeterminadatecla
IremosverdeformaprticaamudanadecoremumpequenoScript. Nafiguraaoladotemos2blocos. Oprimeiromudaoefeito de cor, enquanto o segundo ir retornar para a corprimria.Monteosblocosevejaoqueacontece.EmvezdeescolherateclaApodeescolheroutrateclaqualquer.Bastaselecionarateclapretendidanasopesdoprpriobloco.
2.19. Mudandoostrajescomcontrole
Parafazerumaanimao,noScratchbastantesimples.JvimosalgosobreissonotpicoTrabalhandocomtrajes,agoraveremosmelhorcomoautomatizarascoisasatravsdocontrole. O efeito final o mesmo de uma imagem gif, ou seja,imagensquesemechem,ondeaparecemdiferentesposiesdeumpersonageme a trocadas imagens das posies produza ideia deanimao.Escolhaoobjetoqueseranimadoecliqueemtrajes.Vocpodecriarasdiferentesposiesdoobjetodesenhandoonovoapartirdoinicial(fazerumacpiadooriginaleeditar)ouimportarasposies.Depoisfaaoscriptdoobjetoqueseranimado.UseoblocoSEMPREedentrodeleoblocoprximotraje.Esteblocofazoobjetoalternarentreseustrajesjcriados.
-
Projeto eJovem Mdulo II: Lgica de Computadores 28
importantecolocarumtempoapsatrocadetrajeparaquesejapossvelvisualizaratroca,ouissoacontecermuitorpido.Exerccio:ColoqueosdoisScriptsnareaetenteanalisalos.Vejasetemounooutraspossibilidadesdefazerisso.AltereestesScriptsparaoutrasformasediscutaemsaladeaulacomoscolegasecomoinstrutoroquefoiaprendido.
2.20. Tocarnabordaevoltar
QuandovocfazalgumasprogramaesnoScratch,importantequeoobjetoaotocarnabordadopalcovolte.Umexemplodissopodeserumabolaquerola,batenabordaevolta.PuxeoblocomovaparaareadeediodeScripts.PegueoblocosempreecoloquenareadeediodeScripts.Encaixeomovadentrodosempre.Pegue o bloco se tocar na borda, voltena categoria Movimento e coloque dentro doSEMPRE.Sevocquiserqueabolacomeceaandarquandoforpressionadapelomouse(clicada),useocontroleabaixo:
VoctambmpodedeterminarqueoScriptiniciequandoabandeiraverdeforpressionada.
2.21. Desenhandoumaestrada
O Sprite, ao moverse, pode deixar rasto. Para tal, antes de mandar executar oscomandosdemovimento,precisoselecionar oblocoabaixe acaneta.ParaqueoSpritedeixededesenhar,useoblocolevante acaneta.Paralimparosefeitosgrficosdopalco,utilizeoblocolimpe.
2.22. Desenhandoumquadrado
ObserveoScriptaoladoetentefazeromesmoparacriarquadrados. Altere este Script de modo a desenharquadradosdediferentestamanhos.Lembrese queparaalterar a a posio e orientao doSpriteutilizeoscomandos indicadosnoblocoseparado .
-
Projeto eJovem Mdulo II: Lgica de Computadores 29
Exerccio:ApartirdoScript anterior,faaasalteraesqueacharnecessriasparadesenharumtringulo,umpentgono,umhexgono,umacircunferncia.
2.23. TrabalhandocomaabaSensores
2.23.1. Comandostocandoem/tocandona/tocandocor
Atravsdestescomandosagorapodemosutilizarmelhorosnossoscomandosdecontrole,porexemplo,podemosagorasaberseonossoobjetoest tocandoemumadeterminadacor,ounoponteirodemouseounabordaporexemplo,ouseuma cor est tocando em outra cor. Para testar, construaalgumscriptusandooblocoaoladocomocontroleSE.
2.23.2. Comandospergunteeresposta
possvel tambm fazer perguntas e exibir as respostas poralgumtempononosso palco. Vamosconstruir a estruturaaoladoevejaoresultado.
2.23.3. Comandosmousexemousey
Estesdoiscomandostemcomocaractersticainformarosvaloresdexey.Digamosquesequeiraaomoveromouseacordonossospritesejamodificada, ouutilizaroutroefeitoquandoomousesemoverpelatela.Observeoblocoaoladoetentefazeralteraescomoutrosefeitos.Outra maneira que podemos utilizar praticamente com omesmobloco,masaoinvsdeutilizaroMudeoefeito,utilizeodiga
2.23.4. Comandosmousepressionado/teclapressionada/temporizador
Estes comandos vo identificar alguma ao do teclado ou domouse. Assimcomoos exemplos anteriores, temos que ter umcomando de controle que normalmente o sempre. Porem,vamosmodificarumpoucoefazerautilizaodocomandosemprese,ouseja,atravsdisso,aaonoserfeitasempre,esimsseateclaouomouseforpressionado.Observe os blocos ao lado e faaos e tente ver o queacontece.J o temporizador funciona como um cronometro, ondedesdeaaberturadoprograma,vaicorrendootempo.
2.24. MovimentandoSpriteporSensores
ParamelhormovimentarnossoSprite,observeoaoladoTentefazloeexecutar.Evejaoqueacontece.Observequeestescript s vai emuma direo, ou seja , ele move 10 passossomenteparaadireita.
-
Projeto eJovem Mdulo II: Lgica de Computadores 30
Combasenisso,faaomesmoportodososlados(parabaixo,paraesquerdaeparacima).ColoquetambmumaaoparaquequandopressionadaateclaP,pareoScript.
TrabalhandocomaabaOperadoresDentro da abra de operadores, temos primeiramente os operadores de operaesmatemticas(comosoma,subtrao),depoisosoperadoresdecomparao(maior,menoreigual),operaodepalavras(mostraronumerodeletras,ouparajuntarpalavras), arredondamento ou mostrar o resto de uma diviso entre outros.Observeaasfigurasdecomandosabaixoetenteusarelescomosblocosestudadosatagora.
2.25. Movendosecomrelaoaotemporizador
Esteexemplodaideiadecomovamosusarotemporizador.DesdequeoScratchiniciado,otemporizadorcomeaafuncionar.Poremtemosaopozeretemporizadorsequisermosrecomearacontagem.Observeoexemploaoladoeoimplemente.Discutacomos colegas o que ele faz e tente ver outras maneiras de usar otemporizadorcomosconhecimentosadquiridosataqui.
2.26. FalaeCalcular
Comovistoanteriormente,onossospritepodefalaratravsdocomandodiga.Comojfoivisto,nelepodersedeterminaroquserditoeotempoqueessamensagemficaraparecendo.Vamos usar um simples script que faa um simples calculo j prdeterminado:Monteoblocoabaixoparaelefalarecalcular
2.27. TrabalhandocomaabaVariveis
A aba variveis, vai nos proporcionar trabalhar com valores quevariam com o tempo, fazendo com que um certo valor sejaarmazenadotemporariamenteparaserusadofuturamente.Atravsdaaba varivel, podemos inicialmente criar uma, especificando emseguidaonomedestavarivel.NOcasoaolado,denominamosnossavariveiscomonomevariveis,ondepodesemudarovalordavarivelparaumvalor,ouporumvalor(nestesegundocaso,oquetememvarivelcasosejaumvalor,serincrementadoacadapassagem,ouclique,pelobloco)
-
Projeto eJovem Mdulo II: Lgica de Computadores 31
2.27.1. Usandovariveis
Construa um Script que desenhe quadrados cujos ladospodemvariar decomprimento.Para tal, recorra seco Variveis e defina a varivelcomprimento que,neste caso,podeassumir osvaloresde0a100.Antes demandar executar oprograma, faa duplocliquesobre a caixa correspondente varivel fazendo surgirumamenudeslizante.Arrasteabolinhabranca,selecionandoumvalorparaocomprimento.
2.27.2. Listas
No Scratch possvel criar e manipular listas de itenscompostaspornmerosefrases.Paracriarumalista, precisoirnoblocodeVariveis edepoisem"CriarumaLista"dandoumnomeaela.Umavezalistacriada,vriosblocosirosurgir.Quandocriaseumalistaelaficavisvelnopalco,mostrandotodos os seus itens. possvel editar os itens da listadiretamentenopalco.A lista criada vazia, coma indicaode "itens: 0". Paraadicionaritenslista,clicanosmbolo"mais",nocantoinferioresquerdodomostrador.Como alternativa, podese adicionar itens usando comandos simples (exemplo:
).
possvelajustarotamanhodoespaodalistar,arrastandolheocantoinferiordireito.PodeseaindateraopodequererexportaralistaparaumdocumentoTXTclicandocomobotodireitoquesercriadodiretamentenapastadeinstalaodoScratch.Inversamentepodesusaraopodisponvelparaimportardadosparaumalistaapartirdequalquerficheiro.TXTcomumitemporlinha.
2.28. Caracteres
Podemformarseconjuntosdecaracteresusandoletras,algarismosououtroscaracteres.Osconjuntosdecaracterespodemserguardadosemvariveisoulistas.Podescompararconjuntosdecaracteresatravsdosseguintescomandos:
A comparao feita a comear nos primeiros caracteres. Os algarismos so os maispequenos,seguidosdoscaracteresespeciais,dasletrasmaisculasefinalmentedasletrasminsculas,porestaordem.Nocasodosprimeiroscaracteresseremiguais,socomparadosossegundoscaractereseassimsucessivamente;pormseumdosconjuntosapenastiveralgarismos,entosertratadocomonmeroeacomparaonopossvel.
-
Projeto eJovem Mdulo II: Lgica de Computadores 32
2.29. Criandoumpequenoaplicativo
Usandotodosos conhecimentosanteriores, vamoscriar umminiaplicativoqueter osseguinteselementos:umabola,afiguradedoisjogadores(Jog1eJog2)eondecadaumpodefazergolnooutro.Primeiramente,vamosescolherosnossosSprites, portanto,escolhaoSpritedoarquivobeachball1dentrodapastathings.Depois,encolhaoobjetoparaficaremumtamanhorelativamentepequenoerenomeieparaonomeBola.Onossoobjeto1seronossojuiz,entonomeieparaJuiz.Escolha tambm os Scriptes bat1a e bat1b, renomeandorespectivamenteparaJog.1eJog.2.Diminuatodososobjetosparaficarpraticamentedomesmotamanhodabola. Observeafiguraaoladootamanhorealeoreduzidocomobase.Naimagemabaixotemosaideiadecomoficarosnossoselementos.
Vamoscomearaprogramaodanossabola.Primeiramentevamosdaromovimentoaestabola,portanto,cliquenabolanareadeSpritesecoloqueoScriptaolado.Paramuitasprogramaes,jogosehistriasimportanteusartestes.Podemosfazerumabolabateremumobjetoequandoelabater,voltar.Mascomoelavaisaberquebateu?Comodeterminaroqueacontecequandoelabate?VamoscomearpelaprogramaodoJogador1(Jog1).EparaissomonteoScriptaolado. Apsmontado,dupliqueoScriptetroqueJog1porJog2eadireo45peladireo45.CliquenaBandeiraVerde e veja o que acontece. Perceba quequandoabola toca noJogador1,elavainadireo45equandotocanoJogador2elevainadireo45.Podemostambmfazercomqueabolassemovimentequandoclicadanela,paraisso,useocontrolequandoBolaclicado.No Script perceba que como tem o se tocar na borda,volte, quando toca na borda(qualquerbordadopalco)elavoltanadireocontrria.VejaqueforamfeitostrsScriptsseparados:umparaomovimentodabolaeoutrosparaomovimento dos jogadores. Tambm possvel fazer tudo junto, usando apenas umcontroledeinciodoScripteapenasumblocoSEMPRE.Exerccio:ModificarosScripts,paraqueostrstornemsesum.Agoravamoscomplementaronossoprojeto.Odesafiofazerumabolairnadireodogolopostoesebaternele,dizerPontoparaoJogador1ouPontoparaoJogador2.
-
Projeto eJovem Mdulo II: Lgica de Computadores 33
ParaesteexemploforamimportadososobjetosbuttonebuttonPressed e chamados de Gol 1 e Gol 2.Rotacionamososbotesparaficarcomomostraafiguraaolado.Vamosagorafazercomquenossabolasemprepartadeumponto especifico, ou seja, que parta toda vez queiniciar do ponto x:0 y:0 apontando para a direo 0graus.Implementeissoentreooscomandosquandoeosempre.Agora,devemosfazercomquequandotocaremumdosGols,eledigaisso.AcrescentenareadeediodeScriptsoblocose,senoqueficanacategoriaControle.Coloquenoespaodoseosensortocandoem....eselecioneoGol1.VocpodecolocardentrodosenoocomandoMOVAparaqueabolaandesenotocarnoGol1.Massedeixarosenovazio,apenasnoacontecernadaquandoabolanotocarnoGol1.Dentrodoblocosecoloqueaaoquedeveocorrerquandoabolatocarogol,ouseja,coloqueoblocoPontoparaoJogador2por2segundos.ColoqueoblocodentrodeumblocoSEMPREparaqueestetestesejafeitootempotodo.DepoiscoloqueumcontrolequedetermineoinciodoScript.Observeoexemplodafiguraaolado.DupliqueoblocoetroqueGol1porGol2ePontoparaoJogador2porPontoparaoJogador1
Exerccio:Faacomqueelesemovimenteparatodososladosequefiquemudandodetraje
2.30. Abrindoprojetosjexistentes
Podemosaindavisualizarprojetosjexistentes.Paraisso,clicamosnomenuarquivo Abrir...Clicaseemexemplos,entosescolheroquedesejar
2.31. Compartilhando
Parafazerocompartilhamento,devesecolocarologineasenhacomqueseregistrounoScratch e, tambm,o nomedo projeto. Podese assinalar vrias etiquetas, para que oprojetosejalocalizadodeformamaisrpida.Depoispodestambmescreveralgumasnotassobreoprojeto,porexemploinstruesdeutilizao.FinalmenteclicasemOKparaenvialo.
-
Projeto eJovem Mdulo II: Lgica de Programao 34
Captulo3. Python
3.1. IntroduoaoPython
Devemoslembrarprimeiramente,antesdeentrarnestalinguagemdeprogramaoalgunsconceitosimportantes.Temosoalgoritmoqueummtodoparasolucionarproblemas.Apartirdoalgoritmogeradooprograma.Osprogramastipicamenteprocessamdadosdeentradaeproduzemdadosdesada.
3.2. OqueoPython
Python uma linguagemdeprogramaopoderosa e de fcil aprendizado. Ela possuiestruturasdedadosdealtonveleficientes,bemcomoadotaumaabordagemsimpleseefetivaparaaprogramaoorientadaaobjetos.Suasintaxeeleganteetipagemdinmica,emadio sua natureza interpretada, tornamoPython ideal para scripting e para odesenvolvimentorpidodeaplicaesemdiversasreasenamaioriadasplataformas.OinterpretadordePythonesuaextensabibliotecapadroestodisponveisnaformadecdigo fonte ou binrio para a maioria das plataformas a partir do site,http://www.python.org/, e deve ser distribudos livremente. No mesmo stio estodisponveisdistribuiese refernciasparadiversos mdulos, programas, ferramentasedocumentaoadicionalcomacontribuiodeterceiros.OinterpretadordePythonfacilmenteextensvelincorporandonovasfunesetiposdedadosimplementadosemCouC++(ouqualqueroutralinguagemacessvelapartirdeC).Pythontambmseadequacomolinguagemdeextensoparacustomizaraplicaes.EstaapostilaintroduzoleitorinformalmenteaosconceitosbsicoseaspectosdosistemaelinguagemPython.aconselhvelteruminterpretadorPythondisponvelparasepoderpor a mo na massa, porm todos os exemplos so autocontidos, assim a apostilatambmpodeserlidasemquehajaanecessidadedeseestaronline.Para uma descrio dos mdulos e objetos padro, veja o documento Referncia daBiblioteca Python. O Manual de Referncia Python oferece uma definio formal dalinguagem.ParaseescreverextensesemCouC++,leia EstendendoeEmbutindooInterpretador Python e Manual de Referncia da API Python/C. Existem tambmdiversoslivrosabordandoPythonemmaiorprofundidade.Estaapostilanoalmejaserabrangenteouabordartodososaspectos,nemmesmotodososmaisfrequentes.Aoinvsdisso,eleintroduzmuitasdascaractersticasdignasdenotaemPython,eforneceravocumaboaideiasobreoestiloeosabordalinguagem.Apsaleitura,vocdevesercapazdelereescreverprogramasemdulosemPython,eestarprontoparaaprendermaissobreosdiversosmdulosdebibliotecadescritosnaRefernciadaBibliotecaPython.Nofinaldestaapostilahalgunslinksdereferncia,comosquaisvocdeveacessarcasoseinteresseporsabermaissobrealinguagemPython.
-
Projeto eJovem Mdulo II: Lgica de Programao 35
3.3. IniciandoousodoPython
Por Python ser uma linguagemde fcil entendimento, a sua curva de aprendizado bastante curta. Inicialmente utilizaremos como base para o aprendizado de lgica deprogramao,masPythonpodeserusadoemdiversosscriptsdeautomatizaodetarefasbsicasnocomputador,passarporaplicativos desktopscominterfacesgrficasechegarasistemasparainternetbastantecomplexos.
3.4. UtilizandooPromptdopython
Vamos tentar utilizar alguns comandos bsicos em Python. Quando o prompt estiverpreparadopararecebercomandoselevailheindicarcomopromptprimrio'>>>'.Emumoutromomentoiremosvisualizartambmopromptsecundrio'...'.Suafunoservistamaisafrente.Vamos tentar alguns comandos simples emPython. Inicie o interpretador e aguarde opromptprimrio,>>>.Agoravamoscomearaexecutarcomandossimples:
>>>1010
Exerccio: Executevriosnumerais emseguidaparacomearausaropromptdoPython.
3.4.1. UtilizandooPythoncomoumacalculadora(utilizandonmeroseoperadoresaritmticossimples)
Ointerpretadoratuacomoumacalculadorabemsimples:vocpodedigitarumaexpressoeovalorresultanteserapresentadoapsaavaliaodaexpresso.Asintaxedaexpressoausual:operadores +, , * e / funcionamdamesmaformaqueemoutraslinguagenstradicionais(porexemplo,PascalouC):Percebaaprecednciadosoperadores,senoutilizarmosparentesesnoprimeiroexemploamultiplicaoserrealizadaantesdasubtraoeovalortalveznosejaoesperado.
>>>23*513>>>(23)*55>>>12/34
Exerccio: Resolvaalgumasoperaes levandoemconsideraoaprecednciadosoperadoresefazendousodeparntesespararesolverospossveisproblemas.
InterfaceGrficasojanelasqueajudamnausabilidadedeumprograma.Oseueditordetextosumprogramacomumainterfacegrfica.
-
Projeto eJovem Mdulo II: Lgica de Programao 36
3.4.2. Inserindocomentrios(#);
Podemosaindafazercomentrioscomocaractere#,todocomentrioprecedidodestecaractere,podeserutilizadotantonoinciodalinhacomonomeiodalinha,logoapsumainstruo vlida. Quando fazemos um comentrio no cdigo, esta linha se tornaimperceptvel para o interpretador Python. Comentrios comoestes deixamseucdigomaislegvelparaoutrosprogramadoreseajudamnoentendimentodecertostrechosdoseuprograma.
>>>#Issoumcomentrio....2+24>>>2+3#Comentriotambm!5
Notrechoemvermelhodocdigoacimaobservamosopromptsecundrio,comentadonaseo 3.4. O prompt secundrio est esperando alguma ao do programador (nestemomentovocpodeincrementarseucdigo,mesmoestandonointerpretadorPython)sejaumasimplesequaoouopressionardoEnter.
Exerccio:Escrevacomentriosnointerpretador,mesclecomcomentriosnomeiodalinha(apsoperaesaritmticas).
3.4.3. Tipodevariveis/TiposdeDados
TiposdeDadossocategoriasdevalores, ondedentrodecadacategoriaosdados(dacategoriaX)soprocessadosdeformasemelhante.Porexemplo,nmerosinteirossoprocessadosdeformadiferentedosnmerosdepontoflutuante(decimais)edosnmeroscomplexos.Temsetiposdedadosprimitivosquesoaquelesjembutidosnoncleodalinguagem,ondenormalmentesodivididosentresimplesecompostos.Ossimplessonormalmenteosnmeros(int,long,float,complex)ecadeiasdecaracteres(strings).Oscompostossoporexemploaslistas,dicionrios,tuplaseconjuntos.Existem tambmos tipos definidos pelo usurio que so correspondentes a classes naorientaoaoobjeto.
Variveis
Asvariveissonomesdadosareasdememriaondeosnomespodemsercompostosdealgarismos,letrasou_;Poremoprimeirocaracterenopodeserumalgarismo;Deveseterocuidadocomousodepalavrasreservadas(if,while,etc)poissoproibidasuslascomovarivel.Asvariveisservemparaguardarvaloresintermedirios,construirestruturasdedados.Umavarivelmodificadausandoocomandodeatribuio:
Var=expresso
-
Projeto eJovem Mdulo II: Lgica de Programao 37
possveltambmatribuirvaloresavriasvariveissimultaneamente:
var1,var2,...,varN=expr1,expr2,...,exprN
3.4.4. Atribuiodevariveis
Umavarivelmodificadausandoocomandodeatribuio,noPythoncaracterizadapelosinaldeigual(=).Variveis so criadas dinamicamente e destrudas quando no mais necessrias, porexemplo,quandosaemdoescopodeumblocodeinstrues.OtipodeumavarivelemPythonmudaconformeovaloratribudo.Setratandodogeralemtermosdelinguagensdeprogramaotemosalgunstiposdedadoscomunsatodaselas(int,float,string).
Dica:Emalgumaslinguagensdeprogramaootipodavarivel definidanoinciodocdigo,eestavarivelsiraceitarvaloresdotipodefinido!
Observealgunsexemplos:
>>>a="1">>>b=1
Observequeasduasvariveisacimaforamdeclaradascomtiposdiferentes,aotentarmossomarosvaloresdavarivelacomavarivelb,temososeguinteerro:
>>>a+bTraceback(mostrecentcalllast):File"",line1,in?TypeError:cannotconcatenate'str'and'int'objects
Oerroinformaquenopossvelconcatenar(ousomar)doistiposdedadosdiferentes.Nesteexemplosoeles:StringeInteiro.
3.4.5. UtilizaodeconstantesevariveisnoPython
Podemosentotambmcomearaatribuirvaloresavariveisevisualizarosseusvalores:
>>>a=1>>>a1>>>a=2*a>>>a2>>>a,b=3*a,a>>>a,b(6,2)>>>a,b=b,a>>>a,b(2,6)
(
-
Projeto eJovem Mdulo II: Lgica de Programao 38
3.4.6. UtilizandoStrings
As linguagens de programao fornecemmeios de manipular Strings. Python tambmtrabalhacomelasdediversasformas,elaspodemserdelimitadascomaspassimplesouaspasduplas.
>>>'stringcomaspassimples''stringcomaspassimples'
>>>s=stringcomaspasduplas
PodemosaindatrabalharcomumasequnciadeStrings,paraisso,fazemosusodetrs(3)aspas(simplesouduplas)juntas.'''ou
>>>texto=Essetextoserimpressodamaneiracomofoi
escrito
Maisafrenteveremosemumtpicoseparado,overdadeirousodesteoutrotipodestringcomentadoacima.
3.4.7. Visualizandootipodevariveltrabalhada(type())
Muitasvezesnecessitamossaberotipodevarivelcomaqualestamostrabalhandoeparaissoutilizamosomtodotype().Noexemploaseguir,declaramosumavariveldenomeaeatribumosaelaovalornmero2inteiro.
>>>a=2>>>type(a)
Aomudarmosovalordavarivelaparaumoutrotipo,comoporexemplo,umvalorreal.
A=2.0type(a)
Verificamoscomafunotype(),queamodificaoaconteceusemerros.EsseresultadosemerrosumaparticularidadedalinguagemPythoneoutraslinguagensdealtonvel.RelembrarNOTAnaseo3.4.4.Exerccio:Declareoutrasvariveiseutilizeocomandotype(varivel)paravisualizarotipodamesma,procureutilizarvariveisdeoutrostiposquenoInteirasedepontoflutuante.
3.4.8. Imprimindoresultados(print())
Atomomento,aindanoimprimimosnenhumainformaonatela.Pythonnosforneceafunoprint()pararesolveressaquesto.Asuasintaxebemsimples:print(variavel)(semasaspas).Comestafuno,nsimprimimostodosostiposdedadosnasadapadrodocomputador,queomonitor.
-
Projeto eJovem Mdulo II: Lgica de Programao 39
Supondoadeclaraodeumavarivel,temososeguinteexemplo:
>>>print(b)2.0>>>print(imprimindoumastring)imprimindoumastring
Podemosformatarasadadafunoprint()comalgunsparmetros,paraimprimirmosnatelaasexpresses:
a+b=5c+d=7.4MeunomeJooeeutenho21anos.
Contandoqueoprogramador j tenha, anteriormente, declaradoas variveis, temos oseguinteresultado:
>>>print(a+b=%d%(a+b))a+b=5>>>print(c+d=%.1f%(c+d))c+d=7.4>>>print(Meunome%seeutenho%danos.%(nome,idade))MeunomeJooeeutenho21anos.
Percebaa diferenaentre uma instruoeoutra (emvermelho), noprimeirocaso%dindicaqueserimpressoumvalorinteiro,jnosegundocasoo%1.fdarlugaraumvalorde ponto flutuante com apenas uma casa decimal. J no terceiro exemplo, temos autilizaodeduasvariveis(uma String eoutradotipointeiro)emumamesmafunoprint().Existemaindaoutrasformasdeimpressoformatada.Paracadatipodedado,existeumsmbolocorrespondente,vejaatabelaabaixo.
%d Imprimeumvalorinteiro.
%s ImprimeumavariveldotipoString.
%X ImprimeavarivelinteiranaformadeHexadecimal.
%o ImprimeavarivelinteiranaformadeOctal.
%f/%.nf Imprimeumvalordepontoflutuante/Imprimeumvalordepontoflutuantecomncasasdecimais.
3.4.9. Utilizandoaquebradelinha(\n)
Nofinaldetodaimpressoutilizandoafunoprint(),ocursorvaiparaumanovalinha.Issosedeveaocaractereespecial(noimpresso)\n(semaspas),suafunoquebraralinha.BasicamenteequivalenteaoescrevermosumalinhanoeditordetextoseemseguidaapertaroEnter.
-
Projeto eJovem Mdulo II: Lgica de Programao 40
Suautilizaoexplcitapodeserfeitadaseguintemaneira:
>>>var1=oi,>>>var2=\n>>>var3=tudobem?>>>print(%s%s%s)oi,tudobem?
Tambm possvel escreverconstantes String emvrias linhas incluindoasquebrasdelinhausandotrsaspasduplasousimplescomodelimitadores,vejaoexemplo:
>>>print"""ProjetoEjovemLgicadeProgramaoPython"""ProjetoEjovemLgicadeProgramaoPython
Exerccio:TrabalharcomostiposdevariveisnoPython,tentandoveraspossveisformasdeseutilizaraquebradelinha.
3.5. Trabalhandocomblocodeinstruesefazendoumprograma
Nostpicospassados,trabalhamosapenascomointerpretadordoPython,ecomisso,todavezquesaamosdointerpretador,asvariveisutilizadasdesapareciam,isso,otrabalhoeraperdido.Seprecisarmoscriarumscriptparaautomatizaralgumatarefanosistema,ouatmesmoumprogramaparacalcularumaexpressomatemtica,precisamoslidarcomarquivoscontendocdigoPython.TodoarquivoPython,temaextenso.py.Existeaindaalgumasparticularidadesqueserocomentadasaseguir.
1#!/usr/bin/envpython2#*coding:utf8*
umaboaprticacolocarestasduaslinhasnoinciodearquivosPython.Aprimeiraindicaao script ondeest o interpretador Pythonnoambiente Linux. Asegundanospermitecolocarcaracteresacentuadosnestesprogramas/scripts.Podemosagoraescreveroprimeiroprograma.Abraoeditordetextosedigiteoseguintetrechodecdigo:
1#!/usr/bin/envpython2#*coding:utf8*3#exemplo1.py45a=26b=57c=(a+b)*a89print(Ovalorde(2+5)*2iguala%d%c)
-
Projeto eJovem Mdulo II: Lgica de Programao 41
3.6. Rodandonoshelloprograma
Feitoisso,devemosexecutaroprogramanoshelldoLinux.AbriremosentooterminaldoLinux.PressioneacombinaodeteclasALT+F2edigitekonsole(semaspas).Dirijaseao local onde foi salvo o arquivo exemplo1.py utilizando seu conhecimento em linux(utilizecd/pasta).Executamosoarquivocomoseguintecomando:
coordenador@cord06:~$pythonexemplo1.pyOvalorde(2+5)*2iguala14
Percebaquenossoprogramanonadacomplexo,comotempovamosincorporarmaiscdigoaonossoexemploefazendonovosprogramas.
3.7. Docstrings(quandoprecisaseinserirumcomentriomaior,comoumadocumentao);
Utilizamosdocstringsquandoprecisamosinserirumcomentriomaior,comoporexemplo,umadocumentao,ondeexplicamosmaisdetalhadamentealgumapartedenossocdigo.Nsiremosusarmuitoestaprticadedocumentao.Comelairemoscriaradocumentaodeumprogramadeformamaisprofissionaleprtica.Aofinalizarmosatarefadedocumentaodocdigo,podemosgerarumarquivo.html,outalvezumarquivo .pdf,paraservirdeestudoouatmesmoparamanutenodocdigoescrito.Pormestaparticularidadenoservistanessaapostila.Editeoarquivoexemplo1.pyedeixedaseguinteforma.
1#!/usr/bin/envpython2#*coding:utf8*3#exemplo1.py45'''Esteprogramacalculaaexpresso6(a_b)*2