A p r e n d A A
p r o g r A m A r c o m
S c r At c h
Uma in t r odução v i s ual à
pr o g r amação com jo g os, ar t e,
c iê nc ia e ma t e má t ica
Majed Marji
Copyright © 2014 by Majed Marji. Title of English-language original: Learn to Program with Scratch, ISBN 978-1-59327-543-3, published by No Starch Press. Portuguese-language edition copyright © 2014 by Novatec Editora Ltda. All rights reserved.
Copyright © 2014 por Majed Marji. Título original em Inglês: Learn to Program with Scratch, ISBN 978-1-59327-543-3, publicado pela No Starch Press. Edição em Português copyright © 2014 pela Novatec Editora Ltda. Todos os direitos reservados.
© Novatec Editora Ltda. 2014.
Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora.
Editor: Rubens Prates Tradução: Lúcia Kinoshita
Revisão gramatical: Marta Almeida de Sá Editoração eletrônica: Carolina Kuwabata ISBN: 978-85-7522-312-3
Histórico de impressões:
Julho/2014 Primeira edição Novatec Editora Ltda.
Rua Luís Antônio dos Santos 110 02460-000 – São Paulo, SP – Brasil Tel.: +55 11 2959-6529 Email: [email protected] Site: www.novatec.com.br Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec
7
S U m á r i o r e S U m i d o
Agradecimentos . . . . 15Introdução . . . . 17
Capítulo 1 Introdução ao Scratch . . . . 21
Capítulo 2 Movimento e desenho . . . . 46
Capítulo 3 Aparência e Sons . . . . 70
Capítulo 4 Procedures . . . . 91
Capítulo 5 Variáveis . . . . 118
Capítulo 6 Tomando decisões . . . . 152
Capítulo 7 Repetições: uma exploração mais detalhada dos laços . . . . 183
Capítulo 8 Processamento de strings . . . . 215
Capítulo 9 Listas . . . . 244
9
S U m á r i o d e t A l h A d o
AgrAdecimentos 15
introdução 17
A quem este livro se destina . . . .18Uma nota ao leitor . . . .18
Recursos . . . .18
Como este livro está organizado . . . .19
Convenções utilizadas . . . .20
Faça você mesmo . . . .20
Recursos online . . . .20
Erratas e atualizações . . . .20
1
introdução Ao scrAtch
21
O que é o Scratch? . . . .21Faça você mesmo 1 .1 . . . .23
O ambiente de programação do Scratch . . . .23
O Stage . . . .24
Faça você mesmo 1 .2 . . . .24
Lista de sprites . . . .24
Faça você mesmo 1 .3 . . . .25
A aba Blocks . . . .26
Faça você mesmo 1 .4 . . . .27
A Área de Scripts . . . .27
Faça você mesmo 1 .5 . . . .28
Faça você mesmo 1 .6 . . . .29
A aba Costumes . . . .29
Faça você mesmo 1 .7 . . . .30
A aba Sounds . . . .30
Faça você mesmo 1 .8 . . . .31
A aba Backdrops . . . .31
Faça você mesmo 1 .9 . . . .31
Informações sobre o sprite . . . .31
A barra de ferramentas . . . .32
O Paint Editor . . . .33
Definindo o centro de uma imagem . . . .34
Faça você mesmo 1 .10 . . . .35
Definindo a cor transparente . . . .35
Seu primeiro jogo com o Scratch . . . .36
Passo 1: Preparar o pano de fundo . . . .36
Passo 2: Adicionar a raquete e a bola . . . .37
Faça você mesmo 1 .11 . . . .39
Passo 4: Dar uma animada com sons . . . .40
Blocos do Scratch: uma visão geral . . . .41
Operadores aritméticos e funções . . . .42
Operadores aritméticos . . . .42 Números aleatórios . . . .43 Funções matemáticas . . . .43 Resumo . . . .43 Problemas . . . .44
2
movimento e desenho
46
Utilizando comandos de movimento . . . .46Movimento absoluto . . . .46
Faça você mesmo 2 .1 . . . .48
Movimento relativo . . . .48
Faça você mesmo 2 .2 . . . .51
Outros comandos de movimento . . . .51
Comandos de caneta e o Easy Draw . . . .52
Faça você mesmo 2 .3 . . . .53
Faça você mesmo 2 .4 . . . .54
A eficiência da repetição . . . .54
Faça você mesmo 2 .5 . . . .56
Girando quadrados . . . .56
Faça você mesmo 2 .6 . . . .57
Explorando o comando stamp . . . .57
Faça você mesmo 2 .7 . . . .58
Projetos do Scratch . . . .58
Pegue o dinheiro . . . .58
Pegando maçãs . . . .62
Mais sobre sprites clonados . . . .64
Resumo . . . .66
Problemas . . . .66
3
ApArênciA e sons
70
A paleta Looks (Aparência) . . . .70Alterando as fantasias para criar animações . . . .71
Faça você mesmo 3 .1 . . . .72
Sprites que falam e pensam . . . .73
Faça você mesmo 3 .2 . . . .73
Efeitos em imagens . . . .73
Tamanho e visibilidade . . . .74
Faça você mesmo 3 .3 . . . .75
Camadas . . . .75
Faça você mesmo 3 .4 . . . .76
A paleta Sound (Som) . . . .76
Reproduzindo arquivos de áudio . . . .76
Sumário 11
Compondo música . . . .78
Controlando o volume do som . . . .79
Faça você mesmo 3 .5 . . . .80
Configurando o tempo . . . .80
Faça você mesmo 3 .6 . . . .80
Projetos do Scratch . . . .80 Dançando no Stage . . . .80 Fogos de artifício . . . .84 Resumo . . . .87 Problemas . . . .87
4
procedures 91
Broadcasting e recepção de mensagens . . . .92Enviando e recebendo broadcasts . . . .93
Broadcasting de mensagens para efetuar a coordenação entre vários sprites . . . .94
Criando programas maiores com passos pequenos . . . .96
Criando procedures por meio de broadcasting de mensagens . . . .98
Criando o seu próprio bloco . . . .99
Passando parâmetros para blocos personalizados . . . .102
Faça você mesmo 4 .1 . . . .106
Utilizando procedures aninhadas . . . .107
Faça você mesmo 4 .2 . . . .109
Trabalhando com procedures . . . .109
Dividindo programas em procedures . . . .110
Faça você mesmo 4 .3 . . . .112
Criando com procedures . . . .113
Resumo . . . .115
Problemas . . . .115
5
vAriáveis 118
Tipos de dados do Scratch . . . .119O que as formas geométricas querem dizer? . . . .119
Conversão automática de tipos de dados . . . .120
Introdução às variáveis . . . .121
O que é uma variável? . . . .122
Criando e usando variáveis . . . .124
Faça você mesmo 5 .1 . . . .127
O escopo das variáveis . . . .128
Alterando variáveis . . . .130
Faça você mesmo 5 .2 . . . .133
Variáveis em clones . . . .133
Exibindo monitores de variáveis . . . .135
Usando monitores de variáveis em aplicações . . . .137
Simulando a Lei de Ohm . . . .137
Faça você mesmo 5 .3 . . . .139
Demonstração de um circuito em série . . . .139
Visualizando o volume e a área de superfície de uma esfera . . . .141
Faça você mesmo 5 .5 . . . .142
Desenhando uma rosa com n pétalas . . . .143
Faça você mesmo 5 .6 . . . .144
Modelando a distribuição de sementes de girassol . . . .145
Faça você mesmo 5 .7 . . . .146
Obtendo dados de entrada dos usuários . . . .146
Lendo um número . . . .147
Lendo caracteres . . . .148
Realizando operações aritméticas . . . .148
Resumo . . . .149
Problemas . . . .149
6
tomAndo decisões
152
Operadores de comparação . . . .153Avaliando expressões booleanas . . . .154
Comparando letras e strings . . . .155
Estruturas de decisão . . . .157
O bloco if . . . .157
Usando variáveis como flags . . . .158
O bloco if/else . . . .159
Blocos if e if/else aninhados . . . .161
Programas orientados a menus . . . .162
Operadores lógicos . . . .163
O operador and . . . .164
O operador or . . . .165
O operador not . . . .166
Usando operadores lógicos para verificar intervalos numéricos . . . .166
Projetos do Scratch . . . .169
Adivinhe minhas coordenadas . . . .169
Faça você mesmo 6 .1 . . . .171
Jogo de classificação de triângulos . . . .171
Faça você mesmo 6 .2 . . . .174
Seguindo uma linha . . . .174
Faça você mesmo 6 .3 . . . .175
Equação de uma linha . . . .176
Faça você mesmo 6 .4 . . . .179
Outras aplicações . . . .179
Resumo . . . .180
Problemas . . . .180
7
repetições: umA explorAção mAis detAlhAdA dos lAços
183
Mais blocos relacionados aos laços no Scratch . . . .184O bloco repeat until . . . .185
Faça você mesmo 7 .1 . . . .186
Criando um bloco forever if . . . .186
Sumário 13
Comandos de interrupção . . . .188
Faça você mesmo 7 .3 . . . .190
Finalizando um laço de processamento . . . .190
Validando dados de entrada do usuário . . . .191
Contadores . . . .192
Verificação de senha . . . .192
Faça você mesmo 7 .4 . . . .194
Fazendo a contagem usando um valor constante . . . .194
Revisando os laços aninhados . . . .195
Faça você mesmo 7 .5 . . . .197
Recursão: procedures que chamam a si mesmas . . . .198
Faça você mesmo 7 .6 . . . .200
Projetos do Scratch . . . .200
Relógio analógico . . . .200
Faça você mesmo 7 .7 . . . .202
Jogo de atirar nos pássaros . . . .202
Faça você mesmo 7 .8 . . . .206
Simulação de queda livre . . . .206
Faça você mesmo 7 .9 . . . .209
Simulador do movimento de um projétil . . . .209
Faça você mesmo 7 .10 . . . .211
Outras aplicações . . . .212
Resumo . . . .212
Problemas . . . .213
8
processAmento de strings
215
Revisando o tipo de dado string . . . .215Contando caracteres especiais em uma string . . . .216
Comparando caracteres de strings . . . .217
Faça você mesmo 8 .1 . . . .219
Exemplos de manipulação de strings . . . .219
Igpay Atinlay . . . .219
Faça você mesmo 8 .2 . . . .221
Corrija minha ortografia . . . .221
Faça você mesmo 8 .3 . . . .223
Desembaralhe . . . .223
Projetos do Scratch . . . .226
Acerte o alvo . . . .226
Faça você mesmo 8 .4 . . . .228
Conversor de binário para decimal . . . .229
Faça você mesmo 8 .5 . . . .230
Faça você mesmo 8 .6 . . . .232
Forca . . . .232
Faça você mesmo 8 .7 . . . .236
Tutor de frações . . . .237
Faça você mesmo 8 .8 . . . .241
Resumo . . . .242
9
listAs 244
As listas no Scratch . . . .245
Criando listas . . . .245
Faça você mesmo 9 .1 . . . .247
Comandos de lista . . . .247
Faça você mesmo 9 .2 . . . .249
Verificação de limites . . . .250
Listas dinâmicas . . . .251
Preenchendo listas com dados fornecidos pelo usuário . . . .251
Criando um gráfico de barras . . . .253
Faça você mesmo 9 .3 . . . .256
Listas numéricas . . . .256
Descobrindo os valores mínimo e máximo . . . .256
Faça você mesmo 9 .4 . . . .257
Encontrando a média . . . .257
Faça você mesmo 9 .5 . . . .258
Fazendo pesquisas em listas e ordenando-as . . . .258
Busca linear . . . .258
Frequência de ocorrência . . . .259
Faça você mesmo 9 .6 . . . .261
Bubble sort . . . .261
Faça você mesmo 9 .7 . . . .264
Encontrando a mediana . . . .264
Projetos do Scratch . . . .265
O poeta . . . .265
Faça você mesmo 9 .8 . . . .266
Jogo de classificação de quadriláteros . . . .266
Faça você mesmo 9 .9 . . . .268
Mago da matemática . . . .269
Faça você mesmo 9 .10 . . . .272
Jogo de perguntas sobre a anatomia das flores . . . .272
Outras aplicações . . . .274
Faça você mesmo 9 .11 . . . .274
Resumo . . . .275
Problemas . . . .275
A
compArtilhAmento e colAborAção
277
Criando uma conta no Scratch . . . .277Usando a mochila . . . .279
Criando o seu próprio projeto . . . .281
Iniciando um novo projeto . . . .281
Fazendo a remixagem de um projeto . . . .283
A página do projeto . . . .283