Flappy Bird é um jogo casual para celular de 2013 desenvolvido peloe programador vietnamita de videogame Dong Nguyen ( em vietnamita : Nguyễn Hà Đông ), sob sua empresa de desenvolvimento de jogos .Gears . [ 1 ] O jogo é um side-scroller onde o jogador controla um pássaro, Faby, tentando voar entre colunas de canos verdes sem atingi-los. A pontuação do jogador é determinada pelo número de canos que ele passa. Nguyen criou o jogo ao longo de vários dias, usando o pássaro de um jogo cancelado feito em 2012.
Aula 1: Ordenando listas: brincando com dados estatísticos
Nesta aula, o objetivo é entender a utilidade e a importância da organização de listas no nosso dia a dia e na programação. Vamos aprender a organizar listas em ordem alfabética e como isso nos ajuda a encontrar informações mais rápido. O texto mostra exemplos práticos, como a lista de contatos do celular e a lista de atores em um software chamado StartLab, que são organizados dessa forma. Além de simplesmente organizar, a aula sugere que você pense na lógica por trás da ordenação, porque para ensinar um computador a fazer isso, você precisa entender o seu próprio processo de pensamento. Também são apresentados conceitos básicos de estatística, como
média e mediana, aplicados a dados em listas, o que mostra como as listas podem ser usadas para extrair informações valiosas.
Reflexão sobre listas: A aula propõe uma reflexão sobre a utilidade das listas e a necessidade de organizá-las.
Importância da organização: Organizar listas facilita o uso e a localização de informações, como na lista de contatos do celular ou em um dicionário.
Tipos de ordenação: A aula foca na ordenação alfabética, mas também menciona que existem diferentes métodos de organização para diferentes propósitos.
Dados estatísticos: O conteúdo mostra como extrair dados estatísticos, como média e mediana, de uma lista, demonstrando a aplicação prática da organização e análise de dados.
Lógica de programação: O texto enfatiza que, para ensinar o computador a ordenar listas, é preciso entender a lógica e o passo a passo que nós mesmos utilizamos para essa tarefa.
Organização e listas: A organização de listas é fundamental para encontrar informações rapidamente.
Ordenação alfabética: A ordenação alfabética é um método comum em listas de contatos e atores.
Estatística: É possível extrair dados como média e mediana de listas.
Lógica: O objetivo é pensar em como organizar, para ensinar o computador a fazer o mesmo.
Diversidade: Existem diferentes estratégias para ordenar listas, mesmo que o resultado final seja o mesmo.
De acordo com a aula, qual é a principal vantagem de organizar listas em nosso dia a dia?
Além da lista de contatos do celular, que outro exemplo de lista em ordem alfabética é mencionado no texto?
O que a aula sugere que o aluno deve fazer para conseguir ensinar um computador a ordenar listas?
Quais dados estatísticos podem ser extraídos de uma lista, conforme a aula?
A principal vantagem é que a organização facilita o uso e a localização de informações de forma mais rápida.
A lista de atores no StartLab, que é um software de programação, também é mencionada como um exemplo de lista organizada em ordem alfabética.
A aula sugere que o aluno deve pensar no passo a passo e na lógica que ele mesmo usa para ordenar uma lista, pois será essa lógica que ele precisará ensinar ao computador.
Média e mediana.
Estatística
A estatística é uma área da matemática que se dedica a coletar, organizar, analisar e interpretar dados para entender fenômenos e tirar conclusões. Em outras palavras, a estatística nos ajuda a transformar números em informações úteis e significativas.
Você já parou para pensar em como as empresas de streaming sabem quais filmes e séries recomendar para você? Ou como os jornais conseguem prever o resultado de uma eleição antes mesmo da votação? A resposta para essas perguntas é a estatística.
Ela está presente em nosso cotidiano de diversas formas:
No mundo do entretenimento: A estatística ajuda a entender quais conteúdos fazem mais sucesso com o público.
Na área da saúde: Os cientistas usam a estatística para testar a eficácia de novos medicamentos.
No esporte: Os técnicos utilizam a estatística para analisar o desempenho de seus times.
Na sociedade: O governo usa a estatística para planejar políticas públicas, como a construção de escolas e hospitais.
Para entender a estatística, você precisa saber de alguns conceitos básicos:
População e amostra: A população é o grupo completo que você quer estudar (por exemplo, todos os alunos de uma escola). A amostra é um subgrupo dessa população, selecionado para a pesquisa (por exemplo, 50 alunos de uma sala de aula).
Dados: Os dados são as informações que você coleta para a sua pesquisa. Eles podem ser numéricos (como a altura dos alunos) ou qualitativos (como a cor dos olhos).
Gráficos e tabelas: Os gráficos e tabelas são ferramentas usadas para organizar os dados de forma visual e clara. Gráficos de barra, de pizza e de linha são alguns dos mais comuns.
Medidas de tendência central: Essas medidas servem para resumir um conjunto de dados em um único valor. As mais usadas são:
Média: A soma de todos os valores, dividida pela quantidade de valores. É o mesmo que a "média" que você calcula para saber a sua nota escolar.
Mediana: O valor que está no centro dos dados, depois de organizá-los em ordem crescente.
Moda: O valor que aparece com mais frequência no conjunto de dados.
A estatística é uma disciplina que nos ajuda a tomar decisões mais informadas e a compreender o mundo ao nosso redor. Ao aprender estatística, você desenvolve um olhar mais crítico e analítico, o que é útil em qualquer área da sua vida, seja na escola ou no futuro mercado de trabalho.
Média e Mediana:
Ótimo, vamos aprofundar um pouco mais em dois conceitos muito importantes da estatística: média e mediana. Ambos são tipos de "medidas de tendência central", que é um nome chique para valores que tentam representar o centro de um conjunto de dados.
A média é o que a maioria das pessoas pensa quando ouve a palavra "média". Ela é calculada somando todos os valores de um conjunto de dados e, depois, dividindo o resultado pela quantidade de valores que você somou.
Exemplo prático: Imagine que você tirou as seguintes notas em 4 provas: 8, 9, 7 e 10. Para saber a sua média, você faz o seguinte cálculo:
Soma das notas: 8+9+7+10=34
Quantidade de notas: 4
Cálculo da média: 34÷4=8,5
Sua média é 8,5. A média é muito útil porque leva em consideração todos os valores, mas ela pode ser bastante afetada por valores extremos (muito altos ou muito baixos), que os estatísticos chamam de outliers.
A mediana é o valor que está exatamente no meio de um conjunto de dados, depois que você os organiza em ordem crescente ou decrescente.
Exemplo prático: Vamos usar as mesmas notas: 8, 9, 7 e 10.
Organize os valores em ordem crescente: 7,8,9,10
Encontre o valor do meio: Como temos um número par de valores (4), não há um único número no meio. Nesse caso, a mediana é a média dos dois valores centrais.
Os valores do meio são 8 e 9.
Cálculo da mediana: (8+9)÷2=8,5
A mediana é menos sensível a valores extremos. Por exemplo, se uma de suas notas fosse 1 (uma nota muito baixa) em vez de 7, a média mudaria bastante, mas a mediana não seria tão impactada.
Quando usar um ou outro? A escolha entre média e mediana depende do tipo de dado que você está analisando. A média é ótima para conjuntos de dados que não têm valores extremos. Já a mediana é a melhor opção quando há outliers, pois ela oferece uma visão mais precisa do que é o valor "típico" naquele conjunto de dados.
Quando queremos resumir um conjunto de números, a média e a mediana são duas das medidas mais usadas. Embora ambas ajudem a encontrar o "centro" de um conjunto de dados, elas fazem isso de maneiras diferentes e, muitas vezes, chegam a resultados distintos.
Média (A Média Aritmética)
A média, também conhecida como média aritmética, é o que a maioria das pessoas pensa quando ouve a palavra "média". Ela é calculada somando todos os valores de um conjunto de dados e, depois, dividindo essa soma pela quantidade de valores que existem.
Fórmula:
Meˊdia=Nuˊmero de valoresSoma de todos os valores
Exemplo: Imagine que você tirou as seguintes notas em 4 provas: 7, 8, 6 e 9.
Soma dos valores:
7+8+6+9=30
Número de valores: 4
Cálculo da média:
430=7.5
Nesse caso, a sua média final é 7.5.
A média é muito útil, mas pode ser bastante afetada por valores extremos, também chamados de outliers. Por exemplo, se em um conjunto de salários a maioria das pessoas ganha R$ 3.000, mas uma pessoa ganha R$ 1.000.000, a média pode ficar muito alta e não representar bem o salário "típico" daquele grupo.
Mediana
A mediana é o valor que está exatamente no meio de um conjunto de dados. Para encontrá-la, primeiro você precisa organizar todos os valores em ordem crescente (ou decrescente).
Se a quantidade de números for ímpar, a mediana é o número que está no centro.
Se a quantidade de números for par, a mediana é a média dos dois números que estão no centro.
Exemplo 1 (conjunto ímpar): Considere as seguintes notas: 7, 8, 6, 9 e 10.
Organize em ordem crescente: 6, 7, 8, 9, 10
O valor do meio é o 8. Portanto, a mediana é 8.
Exemplo 2 (conjunto par): Considere as notas: 7, 8, 6 e 9.
Organize em ordem crescente: 6, 7, 8, 9
Como há um número par de valores, pegamos os dois números do meio (7 e 8) e calculamos a média deles.
Cálculo da mediana:
27+8=7.5
Neste caso, a mediana é 7.5.
A grande vantagem da mediana é que ela não é afetada por outliers. Se considerarmos o exemplo dos salários, a mediana representaria o valor "típico" de forma mais justa, já que ela ignora o efeito de um salário extremamente alto ou baixo.
Qual usar?
Use a média quando os dados são relativamente uniformes e não há valores extremos que possam distorcê-la.
Use a mediana quando há outliers ou quando você quer uma medida que realmente represente o valor central sem ser influenciada por valores muito altos ou baixos.
Em resumo, a média é a soma dividida pelo número de valores, enquanto a mediana é o valor central após a organização dos dados. Ambas são ferramentas importantes para a análise de dados, mas a escolha entre uma e outra depende do tipo de informação que você quer extrair.
Agora faça 5 exercícios do tipo alternativa, sobre media e 5 sobre mediana, depois coloque um gabarito.
Com certeza! Aqui estão 5 exercícios sobre média e 5 sobre mediana, todos em formato de múltipla escolha.
Um estudante tirou as seguintes notas em matemática: 8, 7, 9, 6 e 10. Qual é a nota média dele?
a) 7.5
b) 8
c) 8.5
d) 9
A idade de cinco amigos é 12, 14, 13, 15 e 11 anos. Qual é a idade média do grupo?
a) 12.5 anos
b) 13 anos
c) 13.5 anos
d) 14 anos
Em um conjunto de dados, a soma de todos os valores é 120 e o número de valores é 6. Qual é a média desse conjunto?
a) 15 b) 20 c) 25 d) 30
Um time de basquete marcou as seguintes pontuações em cinco jogos: 85, 90, 78, 92 e 80. Qual é a pontuação média do time?
a) 85 b) 86 c) 87 d) 88
Uma empresa tem 4 funcionários com os seguintes salários: R$ 2.000, R$ 2.500, R$ 3.000 e R$ 4.500.
Qual é o salário médio desses funcionários?
a) R$ 2.750 b) R$ 3.000 c) R$ 3.500 d) R$ 3.250
Qual é a mediana do seguinte conjunto de números: 5, 2, 8, 1, 9?
a) 2 b) 5 c) 6 d) 8
Encontre a mediana dos valores: 15, 12, 18, 10.
a) 12 b) 13 c) 13.5 d) 14
Os valores das casas em uma rua são: R$ 200.000, R$ 250.000, R$ 300.000, R$ 450.000 e R$ 2.000.000. Qual é a mediana dos valores das casas?
a) R$ 250.000 b) R$ 300.000 c) R$ 450.000 d) R$ 640.000
Em uma pesquisa, as idades de um grupo de pessoas são 25, 30, 28, 45, 32 e 35. Qual é a mediana das idades?
a) 30 b) 31 c) 32 d) 31.5
Qual é a mediana do conjunto de dados: 10, 10, 15, 15, 20, 20?
a) 10 b) 15 c) 12.5 d) 17.5
Exercícios sobre Média
b) 8
Soma: 8 + 7 + 9 + 6 + 10 = 40
Média: 40 / 5 = 8
b) 13 anos
Soma: 12 + 14 + 13 + 15 + 11 = 65
Média: 65 / 5 = 13
b) 20
Média: 120 / 6 = 20
b) 86
Soma: 85 + 90 + 78 + 92 + 80 = 430
Média: 430 / 5 = 86
d) R$ 3.000
Soma: 2000 + 2500 + 3000 + 4500 = 12000
Média: 12000 / 4 = 3000
Exercícios sobre Mediana
b) 5
Conjunto ordenado: 1, 2, 5, 8, 9
c) 13.5
Conjunto ordenado: 10, 12, 15, 18
Mediana: (12 + 15) / 2 = 13.5
b) R$ 300.000
Conjunto ordenado: 200.000, 250.000, 300.000, 450.000, 2.000.000
d) 31.5
Conjunto ordenado: 25, 28, 30, 32, 35, 45
Mediana: (30 + 32) / 2 = 31.5
b) 15
Conjunto ordenado: 10, 10, 15, 15, 20, 20
Mediana: (15 + 15) / 2 = 15
Quizz sobre média e mediana
Na aula de hoje, a gente vai entender como funciona a organização de dados de um jeito superprático, usando um método chamado Insertion Sort. Para isso, vamos fazer uma atividade com a colaboração de todo mundo.
Como vai ser a nossa dinâmica?
A gente vai fazer um jogo bem simples, aqui mesmo na sala de aula. Cada um de vocês vai pegar um pedaço de papel e escrever um número qualquer entre 0 e 99. Guardem o papel e não deixem ninguém ver o número que vocês escolheram, combinado?
Depois, o professor ou a professora vai chamar um de vocês para vir aqui na frente. Vamos supor que a primeira pessoa chamada tenha o número 40. Essa pessoa vai ficar parada no canto esquerdo da lousa, porque ela é o primeiro item da nossa "lista".
Aí, a gente vai chamar a próxima pessoa. Vamos imaginar que ela tenha o número 15. A tarefa dela é comparar o número dela com o de quem já está na frente. Ela vai perguntar: "O 40 é maior que o 15?". Como a resposta é "sim", a pessoa que tem o 40 vai se mover para a direita para dar espaço, e quem tem o 15 vai ocupar o lugar dela, bem na frente.
E se a gente chamar mais alguém, com o número 30? Essa pessoa vai fazer a mesma coisa: vai começar a perguntar, de um por um, para quem já está na fila. Ela vai perguntar para quem tem o 15: "O 15 é maior que o 30?". A resposta é "não", então ela segue para o próximo. Para o 40, ela pergunta: "O 40 é maior que o 30?". A resposta agora é "sim"! O que acontece? A pessoa com o número 40 se move para a direita para abrir espaço, e quem tem o 30 entra na lista, ficando entre o 15 e o 40.
O que aprendemos com isso?
A ideia é que, a cada novo colega que entra na fila, ele vai comparando o seu número com os de quem já está lá, sempre começando pelo menor número, até encontrar a sua posição certa. Se o número dele for maior que o do colega, ele continua a busca; se for menor, ele encontra o lugar e todos os outros se movem para a direita.
Essa atividade mostra exatamente como funciona o método de ordenação Insertion Sort: ele vai inserindo cada novo item na posição correta, comparando-o com os elementos que já estão ordenados, um por um.
Na próxima aula, a gente vai usar esse conhecimento para aplicar a lógica do Insertion Sort na programação. Mas, por enquanto, a gente já pode ver como um método de organização que parece complexo, na verdade, é bem simples e lógico na prática!
Áudioaula 55 - 02 - Ordenando a nossa turma - aula em áudio
Nesta aula, vamos aprender a organizar dados e ensinar o computador a fazer isso de uma forma muito legal! Na nossa última aula, falamos sobre o Insertion Sort, um método para ordenar uma lista de itens. Hoje, vamos colocar a mão na massa e usar esse método para criar uma lista de números no StartLab.
Nosso primeiro passo é criar a lista. Para isso, vamos até a seção Variáveis, no lado esquerdo da tela, e clicamos em "Criar uma Lista". Uma janelinha chamada "Nova Lista" vai aparecer.
Vocês vão dar um nome para a nossa lista. Vamos chamá-la de "números". Certifiquem-se de que a opção "Para todos os atores" está selecionada e, depois, é só clicar em OK.
Pronto! Agora vocês vão notar que, na lista de blocos, surgiram novos blocos na cor laranja. Isso significa que a nossa lista foi criada com sucesso. No palco, no canto superior esquerdo da tela, vocês também verão que a lista "números" aparece, mas por enquanto ela está vazia.
Existem duas maneiras de adicionar números à nossa lista:
A primeira é a mais simples: clicando no ícone +, que fica no rodapé da lista no palco. Vocês podem digitar os números que quiserem.
A segunda forma é usando os blocos de código. Vocês podem arrastar o bloco de evento
"quando a bandeira for clicada" para a área de código. Depois, adicionem o bloco "apague todos os itens de números" para que a lista sempre comece do zero ao rodar o programa.
Para fazer o computador nos perguntar os números, usaremos um bloco de sensor. Vão até a seção
Sensores e arrastem o bloco "pergunte 'Qual é o seu número?' e espere" para o código.
E agora, como guardamos o número que o usuário digitar? Vamos voltar para a seção
Variáveis e pegar o bloco "adicione 'coisa' a 'números'". Mas, em vez de adicionar a palavra "coisa", queremos adicionar a resposta do usuário, certo? Então, na seção
Sensores, peguem o bloco "resposta" e encaixem-no no lugar da palavra "coisa".
Assim, sempre que o programa rodar, ele vai perguntar um número, e esse número será adicionado à lista. Mas e se quisermos adicionar vários números? Se clicarmos na bandeirinha verde novamente, a lista será apagada. Para resolver isso, usaremos um
laço de repetição.
Na seção Controle, encontrem o bloco "repita 10 vezes" e encaixem os blocos de "pergunte" e "adicione" dentro dele. Assim, o programa vai perguntar e adicionar 10 números de uma vez, sem apagar a lista a cada clique!
Depois de adicionar os números, a lista ainda não estará ordenada. É aí que entra a parte mais legal! Vamos criar um bloco personalizado, que funciona como uma função, para fazer a mágica da ordenação.
Vão em "Meus Blocos" e cliquem em "Criar um bloco". Chamem esse novo bloco de
"ordena lista" e adicionem uma entrada com o nome "valor".
Agora, para o computador entender como ordenar, ele precisa comparar os números. Usaremos um
bloco de operador para isso. Se o primeiro item da nossa lista for maior que o número que estamos adicionando, o computador deve colocar o novo número na primeira posição. Para criar essa lógica, usaremos um bloco de
"se...então" da seção Controle.
Dentro do "se...então", colocaremos nosso operador de comparação. Depois, dentro do "então", usaremos o bloco
"insira 'coisa' na posição 1 de 'números'". No lugar da palavra "coisa", vocês vão colocar o bloco de entrada que criamos, o "valor".
Para finalizar, vamos fazer um teste!
Adicionem alguns números e vejam como a lista se organiza automaticamente. Por exemplo, se a lista tem 10 e 20, e vocês adicionam o 5, ele vai para a primeira posição!
Agora é com vocês! Testem, experimentem e vejam como a programação nos ajuda a organizar dados de forma inteligente.
Ordenando Listas: O Poder do Insertion Sort.
Na aula passada, eu apresentei a vocês o método chamado
Insertion Sort, ou Ordenação por Inserção. Pensem no Insertion Sort como arrumar um baralho de cartas: você pega uma nova carta e a insere na posição correta, no meio das cartas que já estão ordenadas. É um processo passo a passo, super lógico!
Hoje, vamos colocar a mão na massa no
StartLab (ou em um ambiente de programação em blocos parecido) para construir essa lógica.
Primeiro, precisamos de um local para guardar os números que vocês vão digitar. Esse local é a
Lista, que chamaremos de "números".
Para criar a lista, vocês precisam ir na seção Variáveis e clicar em Criar uma Lista. É importante que ela seja "Para todos os atores" e, ao finalizar, clicar em OK.
Para que o programa não apague a lista toda vez que rodamos, vamos usar dois blocos importantes:
O Evento Inicial e a Limpeza: Começamos com o bloco quando [bandeira verde] for clicado e, logo abaixo, o bloco apague todos os itens de [números] para garantir que a lista comece do zero a cada novo teste.
O Laço de Repetição: Para perguntar o número dez vezes, usamos o bloco repita [10] vezes. Dentro dele, colocamos os comandos de pergunta e armazenamento.
O Sensor de Entrada: Usamos o bloco pergunte [Qual é o seu número?] e espere. A resposta que vocês digitam fica guardada automaticamente na variável
resposta.
Adicionando à Lista: Para salvar a resposta na lista, usamos o bloco adicione [resposta] a [números].
Para que a lista não receba os números de qualquer jeito, criamos uma
Função, ou Bloco Personalizado, que vai ser o nosso Insertion Sort.
Na seção
Meus Blocos, criamos um novo bloco chamado ordena lista e adicionamos uma entrada, que chamamos de valor (que será o número que o usuário digitou).
No bloco principal, substituímos o
adicione [resposta] a [números] pela chamada da nossa função: ordena lista [resposta].
Dentro da definição da função defina ordena lista [valor], é onde a mágica acontece:
A Comparação: O coração do Insertion Sort é a comparação. Ele verifica o
valor (o número que está chegando) com o primeiro item que já está na lista. Para isso, usamos um bloco de comparação, como o operador
maior que >.
A Condição: Usamos o bloco de controle se <condição> então. A condição é:
se item [1] de [números] > [valor] então....
Tradução: Se o primeiro número da lista for maior que o número novo que eu quero adicionar...
A Ação: ...então o que fazemos? O número novo tem que entrar na frente! Usamos o bloco
insira [valor] na posição [1] de [números]. Dessa forma, o número novo entra no lugar certo, e os outros se movem para a direita!
Com essa lógica, se eu adicionar 10, depois 20, e em seguida 5, o programa compara 5 com 10, vê que 5 é menor, e
insere o 5 na posição 1, empurrando o 10 e o 20 para baixo. O computador aprendeu a ordenar!
Listas: São variáveis que guardam vários itens (como números) em uma sequência no StartLab.
Insertion Sort: É um método de ordenação que insere um novo elemento em sua posição correta dentro de uma parte da lista que já está ordenada.
Blocos Personalizados (Funções): Criamos um bloco ordena lista para isolar e organizar o código do Insertion Sort.
Laço de Repetição: O bloco repita é usado para pedir múltiplos números ao usuário sem apagar a lista a cada nova entrada.
Lógica Principal: A ordenação ocorre ao usar o bloco se... então para verificar se o item da lista é maior que o novo valor e, em caso positivo, inserir o novo valor na posição correta.
Responda às perguntas abaixo usando a lógica da nossa aula de hoje.
O que é uma Lista no contexto da nossa aula de programação?
a) É um bloco de comando para perguntar coisas.
b) É uma variável que pode armazenar múltiplos dados em sequência (como uma caixa com divisórias).
c) É o nome da personagem que faz as perguntas.
d) É o bloco de controle se... então.
Qual é o principal objetivo do bloco repita [10] vezes no código de entrada de dados?
a) Apagar todos os itens da lista.
b) Fazer a lista ter exatamente dez itens, um de cada vez, sem reiniciar o programa.
c) Criar um bloco personalizado.
d) Determinar se um número é maior que o outro.
Qual é a ideia central do algoritmo Insertion Sort (Ordenação por Inserção)?
a) Dividir a lista em duas partes e depois juntar.
b) Inserir um elemento novo sempre no final da lista.
c) Comparar o novo item com os itens já ordenados e
inseri-lo na posição correta.
d) Trocar de lugar todos os itens da lista ao mesmo tempo.
Em qual seção do StartLab (ambiente de blocos) devemos ir para criar a nossa lista "números"?
a) Eventos
b) Operadores
c)
Variáveis
d) Sensores
Quando o programa deve decidir inserir um número (valor novo) em uma posição anterior (mais à esquerda) da lista?
a) Quando o novo valor é maior que o número que está na lista.
b) Quando o novo valor é igual ao número que está na lista.
c) Quando o
novo valor é menor que o número que está na lista (ou seja, o item da lista é maior que o novo valor).
d) Isso não é decidido, ele sempre insere na posição 1.
"Insertion Sort"
Aula 4: Finalizando o Insertion Sort
Hoje, vamos continuar de onde paramos e vamos aprender a fazer o computador ordenar uma lista de números sozinho, de um jeito bem inteligente. Na aula passada, a gente fez o nosso código comparar a resposta de vocês com o primeiro número da lista. Lembrem-se que, para que a gente consiga comparar o número de vocês com todos os números da lista, precisamos criar
laços de repetição e usar mais condições.
Vamos começar dando uma olhada no código que fizemos na última aula. A gente tinha um bloco que adicionava o valor à lista, mas ele estava solto e não servia para nada. Vamos apagá-lo, arrastando-o para a área de blocos à esquerda.
Agora, o nosso desafio é fazer o computador comparar o novo número com cada item da lista, um por um. Para isso, vamos criar uma variável que funcione como um "contador". Chamaremos essa variável de i, que significa "índice". Para criá-la, vá na seção "Variáveis", clique em "Criar uma Variável" e digite "i". Lembrem-se de deixar a opção "Para todos os atores" selecionada e, depois, cliquem em "OK".
Com a variável criada, vamos adicioná-la no nosso código, no início do bloco rosa. Usem o bloco mude i para 0 e mudem o valor para 1. Por que 1? Porque queremos que o nosso "contador" comece pelo primeiro item da lista. Depois, vamos arrastar o bloquinho da variável
i para o lugar do número 1, nos blocos item 1 de números e insira valor na posição 1 de números.
Testem o código agora. Provavelmente, ele não vai funcionar direito, pois ele só compara com o primeiro item. Precisamos de um laço de repetição para que ele compare com
todos os itens.
Para isso, vamos usar o bloco repita 10 vezes, que fica na seção "Controle". Arraste-o para o nosso script, logo depois do bloco
mude i para 1, e coloque todo o código de condição (o bloco se...então) dentro dele.
Mas a gente não quer que ele repita 10 vezes, certo? Queremos que ele repita o mesmo número de vezes que a quantidade de itens na nossa lista. Para isso, vamos arrastar o bloco
tamanho de números para o lugar do 10.
E para o nosso contador funcionar, temos que fazer a variável i aumentar a cada vez que a repetição acontecer. Para isso, usem o bloco
adicione 1 a i e coloquem-o no final do laço de repetição.
Agora, vamos testar de novo. Usem os números 5, 10, e 7. O número 7, por exemplo, deve entrar na posição certa. Mas e se a gente colocar o número 2? O que acontece? Ele é adicionado várias vezes na lista, porque a repetição continua mesmo depois que ele encontrou o lugar certo.
Para resolver isso, vamos criar uma nova condição. Quando o número encontrar seu lugar, a gente precisa que a variável
i receba um valor que seja maior que o tamanho da lista.
Vamos usar o bloco
mude i para 0 e colocá-lo dentro do bloco se...então. Vamos mudar o valor para um número bem grande, como
200000. Assim, quando o número for inserido, o valor de
i vai ser tão grande que o laço de repetição não vai mais funcionar.
Agora, falta só uma última coisa. E se o número que a gente inserir for o maior de todos? Ele não é adicionado à lista.
Para resolver isso, a gente vai criar uma nova condição. Se a variável
i chegar ao valor do tamanho da lista mais 1 (porque significa que ela percorreu todos os itens e não encontrou nenhum maior), a gente vai adicionar o número no final.
Vamos usar o bloco
se...então, da seção "Controle". A condição será:
i = tamanho de números + 1. Se essa condição for verdadeira, a gente vai adicionar o número usando o bloco
adicione valor a números.
Pronto! Agora o nosso programa está completo. Ele consegue ordenar qualquer número que vocês adicionarem à lista, colocando-o na posição correta, do menor para o maior. Tentem adicionar uma série de números aleatórios, como 5, 2, 7, 4, 3, 1 e -10, e vejam a mágica acontecer!
Bons estudos!
Olá! Nesta aula, exploramos a criação de diferentes formas geométricas utilizando programação.
Inicialmente, relembramos como criar triângulos, quadrados e hexágonos, ajustando o número de lados e os passos para cada forma.
Em seguida, surgiu o desafio de criar um círculo e outras formas mais complexas, como uma estrela. Para isso, introduzimos a variável "distância" para ajustar automaticamente o tamanho da forma geométrica de acordo com o número de lados, garantindo que ela sempre caiba na tela.
Por fim, demonstramos como criar uma estrela combinando movimentos, giros e a variável "distância", resultando em um desenho interessante e personalizável.
Desenhando uma estrela
Sequência da estrela
Transcrição da aula em texto:
Olá, estudantes!
Na aula passada, conseguimos criar algumas formas geométricas e sugerimos que vocês explorassem algumas delas. Nós também vamos explorar algumas aqui. Vocês devem se lembrar que criamos um triângulo e um quadrado. Ao clicar na bandeira, conseguimos até fazer um hexágono. Agora, podemos tentar criar outra forma geométrica, como um círculo.
Para começar, vamos relembrar como criamos essas formas. Primeiro, definimos o número de lados da forma geométrica. Por exemplo, para um triângulo, usamos o seguinte código:
mude [lados v] para (3)
repita (lados) vezes
mova (100) passos
gire em sentido anti-horário (360) / (lados) graus
end
Copiar código
Em seguida, para criar um quadrado, alteramos o número de lados para 4:
mude [lados v] para (4)
repita (lados) vezes
mova (100) passos
gire em sentido anti-horário (360) / (lados) graus
end
Copiar código
E para um hexágono, usamos 6 lados:
mude [lados v] para (6)
repita (lados) vezes
mova (100) passos
gire em sentido anti-horário (360) / (lados) graus
end
Copiar código
Agora, vamos tentar criar um círculo. Uma dica para vocês: um círculo é uma forma geométrica que possui muitos lados. Se pedirmos, por exemplo, 30 lados, ele ficará bem parecido com um círculo:
mude [lados v] para (30)
repita (lados) vezes
mova (100) passos
gire em sentido anti-horário (360) / (lados) graus
end
Copiar código
Ao clicar na bandeira, percebemos que não ficou como esperado, pois ele está encostando na parede e indo reto. Talvez o círculo seja tão grande que não seja possível criá-lo. Podemos diminuir o número de lados para 10, mas ele também não formou uma figura geométrica com 10 lados, cujo nome esquecemos.
mude [lados v] para (10)
repita (lados) vezes
mova (100) passos
gire em sentido anti-horário (360) / (lados) graus
end
Copiar código
Como podemos criar essa forma geométrica com 10 lados? Podemos diminuir o número de passos para 30:
mude [lados v] para (10)
repita (lados) vezes
mova (30) passos
gire em sentido anti-horário (360) / (lados) graus
end
Copiar código
Ao fazer isso, ele formou a figura, mas o tamanho ficou menor. Por exemplo, com o hexágono, ao mudar o número de lados, precisamos ajustar automaticamente o número de passos. Percebam que, toda vez que mudamos um parâmetro, precisamos ajustar outro. Alteramos o número da variável de lados e também o número de passos. Será que não existe uma maneira de organizar isso para que possamos mudar apenas um parâmetro e resolver tudo? Ou, talvez, apenas mudar o número de lados e, automaticamente, a forma geométrica ficará compacta o suficiente para caber na tela?
Conseguimos fazer isso! Com isso, precisamos utilizar a variável. Vamos criar uma nova variável chamada distância. Não vamos marcar nenhuma opção, e será aplicada a todos os atores. A variável distância será um número que, dependendo do número de lados, será menor ou maior. Podemos modificar essa variável e fazer algo semelhante ao que fizemos com a função gire, utilizando divisão. No denominador, colocaremos o número de lados, e no numerador, podemos colocar outro valor, como 180, por exemplo. Vamos substituir o valor de 100 passos por distância na função mova. Isso fará com que a forma geométrica gerada seja proporcional ao número de lados.
quando bandeira verde for clicado
vá para x: (0) y: (0)
aponte para a direção (90)
apague tudo
use a caneta
mude [distância v] para ((180) / (lados))
mude [lados v] para (6)
repita (lados) vezes
mova (distância) passos
gire em sentido anti-horário (360) / (lados) graus
end
Copiar código
Se fizermos um triângulo, ele ficará praticamente do mesmo tamanho. Podemos também criar um círculo, e se aumentarmos o valor para 360, ele formará um círculo completo. Podemos ainda definir 5 lados, e assim conseguimos resolver o problema. O que fizemos? Adicionamos uma variável e deixamos no denominador dessa variável uma função lados. Ou seja, sempre que tiver um número de lados maior, o número da distância irá diminuir e o mova passos também, para caber na tela.
O que fizemos até agora foi criar formas geométricas como quadrado, triângulo, hexágono e círculo, que são logos da Start. Agora, queremos explorar outras formas, como uma estrela. Para isso, podemos pensar em um triângulo, que já sabemos como fazer, e adicionar uma estrela a partir dele. Ao invés de apenas mover passos, podemos criar um novo triângulo menor para dar o efeito de uma estrela. Na tela, podemos ver um triângulo vermelho e triângulos menores em amarelo, formando uma estrela de 6 pontas.
Para desenhar essa estrela, começamos movendo o ator, que estará apontado em 90 graus, como em um quadrado ou triângulo normal. Pedimos para ele mover um número de passos ainda indefinido e, em seguida, girar para a esquerda 60 graus. Depois, ele move novamente e gira para a direita 120 graus, formando a ponta da estrela. Ele move mais uma vez, gira para a esquerda 60 graus e retorna à posição inicial para completar a ponta da estrela.
quando bandeira verde for clicado
vá para x: (0) y: (0)
aponte para a direção (90)
apague tudo
use a caneta
mude [distância v] para ((360) / (lados))
mude [lados v] para (3)
repita (lados) vezes
mova ((distância) / (3)) passos
gire em sentido anti-horário (60) graus
mova ((distância) / (3)) passos
gire em sentido horário (120) graus
mova ((distância) / (3)) passos
gire em sentido anti-horário (60) graus
mova ((distância) / (3)) passos
gire em sentido anti-horário (360) / (lados) graus
end
Copiar código
Até o momento, sabemos os ângulos e os passos necessários, mas precisamos calcular a distância a ser movida. A resposta é que podemos mover 1/3 da distância original, pois o triângulo amarelo é 3 vezes menor que o triângulo vermelho. Assim, ao invés de mover a distância total, movemos 1/3 dela.
No slide, vimos a sequência: mova passos, gire para a esquerda 60 graus, mova novamente, gire para a direita 120 graus, mova passos, gire para a esquerda 60 graus e mova passos novamente. Esperamos que isso forme a ponta desejada. Podemos aumentar o desenho e testar o código. Se ele não apagar, precisamos adicionar um comando para limpar a tela antes de desenhar novamente.
Para desenhar a distância dividida por 3, utilizamos operadores e variáveis. Arrastamos o valor da variável distância e dividimos por 3. Podemos duplicar esse bloco para evitar retrabalho e programar mais rapidamente. Assim, conseguimos desenhar uma ponta da estrela. Ao clicar novamente, ele desenha outra ponta. Ao invés de mover a distância total, utilizamos a sequência de código que criamos para formar a estrela.
Conseguimos criar mais um desenho, que pode ser utilizado em logos. Se gostarmos do desenho, podemos continuar usando. Na próxima aula, exploraremos mais funcionalidades e efeitos para a estrela, tornando-a ainda mais interessante. Vamos salvar o projeto como aula 2.1 e continuar explorando na próxima aula. Até lá!
Aula 54 - 01
Organizar Listas -
Curso Alura - Ordenando Listas: Brincando com dados estatísticos.
Hoje vamos conversar sobre algo que fazemos o tempo todo, mas talvez a gente nem perceba: organizar listas.
Parem para pensar: quantas listas a gente encontra no nosso dia a dia? A lista de contatos no celular, a lista de compras, a lista de filmes ou séries para assistir. Elas estão por toda parte!
E vocês já repararam que a maioria delas está organizada de um jeito que facilita a nossa vida? Por exemplo, a lista de contatos do celular está em ordem alfabética. Se você precisa encontrar o contato do João, você já sabe que é só ir direto para a letra "J", certo? Isso nos ajuda a achar o que precisamos rapidinho.
A organização é superimportante, seja para arrumar nosso quarto ou para ajudar a gente a não se perder em um projeto de programação. Talvez você já tenha precisado pegar o caderno de alguém mais organizado que você para tirar uma foto, né? Ou, quem sabe, você é a pessoa organizada que empresta o caderno!
Organizando na prática
Para entender como a organização funciona de verdade, vamos fazer uma atividade bem legal.
Eu quero que vocês peguem um papel e uma caneta e escrevam o nome de cinco coisas que vocês mais gostam. Pode ser qualquer coisa, como chocolate, filmes, praia, cachorro ou dormir.
Agora, o nosso desafio é: vamos colocar essas cinco coisas em
Ordem alfabética.
Não pensem só em organizar. Pensem em como vocês fariam isso. Qual item você pegaria primeiro? Qual é a sua lógica para ordenar?
Depois que todo mundo terminar, nós vamos compartilhar nossas estratégias. Mesmo que todos cheguem à mesma ordem alfabética, vocês vão ver que cada um pensou de um jeito diferente para organizar. E é aí que está a grande sacada! Isso mostra que existem vários jeitos, ou "métodos", de organizar uma lista.
Entender esse "passo a passo" é o mais importante, porque, no futuro, quando formos programar um computador para fazer essas listas, vamos precisar ensiná-lo a pensar como a gente. Ele não vai saber sozinho! A gente precisa dar as instruções certinhas, e a melhor forma de fazer isso é entendendo o nosso próprio processo de organização.
Aula 54 -01 - Organizar listas - Alura