nossa primeira aula. E como não podia ser diferente, vamos começar pelos conceitos fundamentais. Eles vão possibilitar o início da aprendizagem de Lógica de Programação. Esta aula é muito importante para a compreensão do restante do curso. Nesta aula vamos propor uma estratégia para resolução de problemas e conhecer como funciona o computador para futuramente resolver problemas por meio da criação de algoritmos e programas. O que é algoritmo? Um algoritmo pode ser definido como uma sequência de passos (instruções) para atingir um determinado resultado. Podem existir um ou mais algoritmos para atingir um objetivo, desde que o resultado (a saída) seja o mesmo, afinal de contas uma pessoa pode realizar algo de forma diferente de outra pessoa. Exemplo: Sequência para fritar um ovo: 1. Retirar o ovo da geladeira 2. Colocar a frigideira no fogo 3. Colocar óleo 4. Esperar até o óleo ficar quente 5. Quebrar o ovo separando a casca 6. Colocar o conteúdo do ovo na frigideira 7. Esperar um minuto 8. Retirar o ovo da frigideira 9. Apagar o fogo
computador é feito pelo ser humano, e é o ser humano que o conduz para onde quer, para onde precisar. Ele não é um aparelho autossuficiente, mas sim dependente do cérebro humano, que tem essa tal característica. O computador não consegue "se virar" sozinho. Ele não pode nos ajudar a fazer cálculos extraordinários se não falarmos para ele fazer essas funções. Por isso, a importância dos algoritmos no mundo da informática. É através dos algoritmos que conseguimos "dizer" para o computador o que queremos e como queremos, por isso é importante sabermos como programá-los para que ele realize as coisas para nós, seres humanos. Escreva aqui a sequência para alguma atividade do seu dia a dia: Atividade: ______________________________________________________________________________________ 1. ___________________________________________________________________ 2. ___________________________________________________________________ 3. ___________________________________________________________________ 4. ___________________________________________________________________ 5. ___________________________________________________________________ 6. ___________________________________________________________________ 7. ___________________________________________________________________
robô (computador) executa apenas aquilo que você pede, se faltar alguma parte no seu algoritmo acontecerá um erro. - Os comandos devem seguir uma ordem lógica para atingir o resultado. - Quando o algoritmo é executado com sucesso e o resultado é atingido, o robô para de executar o algoritmo. Escreva aqui a solução do seu time para o Caminho do Robô: ___________________________________________________________________________________________________________ ___________________________________________________________________________________________________________ ___________________________________________________________________________________________________________ ___________________________________________________________________________________________________________ ___________________________________________________________________________________________________________ ___________________________________________________________________________________________________________ ___________________________________________________________________________________________________________ ___________________________________________________________________________________________________________ ___________________________________________________________________________________________________________ ___________________________________________________________________________________________________________ ___________________________________________________________________________________________________________ ___________________________________________________________________________________________________________ ___________________________________________________________________________________________________________ ___________________________________________________________________________________________________________ ______________________________________________________________
e realizamos uma atividade para mover um robô em um tabuleiro, na aula de hoje vamos realizar esta atividade no computador. Vamos jogar o Lightbot! Lightbot é um robô que vive em um mundo de azulejos quadrados. O objetivo, em cada nível, é fazer com que o Lightbot ilumine todos os azulejos azuis do nível. No entanto, o Lightbot não entende algo tão complicado como "acenda todos os azulejos azuis". Em vez disso, ele entende um conjunto de regras básicas: Link: https://lightbot.com/hour-of-code-2015-flash.html Para frente Vire à Esquerda Vire à Direita Pule Acende luz Para controlar o Lightbot você precisa dar-lhe um conjunto de instruções, chamado de "programa". Uma vez que você pressionar o botão verde "play", o Lightbot irá executar todas as instruções no programa, uma de cada vez. Se alguma instrução estiver errada, você vai ter que dizer ao Lightbot para voltar para o início e depois alterar o programa para dar as instruções corretas. Exemplo: RESULTADO: Para frente Para frente Acende luz
fazemos escolhas. Nos algoritmos encontramos situações onde um conjunto de instruções deve ser executado caso uma condição seja verdadeira. Por exemplo, só damos “Bom Dia!” para alguém se o horário for anterior ao meio dia. Caso contrário, damos “Boa Tarde!” ou então “Boa Noite!”. Este tipo de situação pode ser representada nos algoritmos e é isto que veremos nesta aula. O SE/SENÃO é uma estrutura de condição. Utilizamos estrutura de condição quando existem instruções dentro do programa que somente devem ser executadas caso se satisfaça uma determinada condição. Em outras palavras, o SE/SENÃO, deve ser utilizado quando se quer executar determinada instrução apenas se uma condição for verdadeira, caso contrário se executará outra instrução ou não se executará nada. Caso a condição colocada no comando SE seja VERDADEIRA, serão feitas as instruções que estão dentro do SE. Caso a condição colocada no SE seja FALSA, automaticamente serão feitas as instruções que estão dentro do SENÃO. O bloco SENÃO tem que ser utilizado juntamente com o SE, pois ele é um complemento, já o bloco SE pode ser utilizado sem o SENÃO. Lições aprendidas da atividade Caça ao tesouro - Através da programação de computadores é possível se realizar ações apenas se uma determinada condição for verdadeira. - Caso a condição seja falsa, o algoritmo ignora o código que está dentro da estrutura de condição e segue a execuçãção do algoritmo. - Caso a condição seja verdadeira, o algoritmo executa o código que está dentro da estrutura de condição e depois segue normalmente a execução do algoritmo. - O algoritmo só está pronto quando passar por todas caixas e coletar todos os tesouros.
Para exercitar o que vimos sobre condicionais, iremos utilizar uma aplicação feita pelos voluntários da TW que tem como objetivo mover o avião até que ele encontre todos os tesouros escondidos nas nuvens. O avião precisa percorrer todos os quadrados necessários para encontrar os tesouros, mas, infelizmente, ele não reconhece o comando "encontre todos os tesouros", ao invés disso, ele entende um conjunto de comandos, que são: andar(x) - Anda X espaços no tabuleiro. girarParaDireita() - Faz o avião girar para a direita. girarParaEsquerda() - Faz o avião girar para a esquerda. checarTesouro() - Verifica se há um tesouro na casa a frente. Link do jogo: http://educodar.herokuapp.com/
que você quer que ele execute. Uma vez que você clicar no botão "Executar", o avião irá executar as instruções que você digitou no console à esquerda uma de cada vez na ordem em que foi colocado. Exemplo: andar(2) - 2 passos para frente girarParaDireita() - Vira à direita andar(2) - 2 passos para frente
tarefas quase todos os dias. Um exemplo disso são tarefas simples como acordar, levantar, escovar os dentes, tomar café-da-manhã e lavar a louça. Uma tarefa simples como lavar a louça nos remete a tarefas que são executadas por computadores através de linguagens de programação. A execução repetida de tarefas é um dos meios pelos quais os computadores executam as tarefas que desejamos. Chamamos esse mecanismo de repetições de laços de repetição. Tipos de Laços de Repetição Podemos subdividir as repetições em dois tipos principais: Repetição Condicional e Repetição Quantitativa. • Repetição Quantitativa (FAÇA ou REPITA) A Repetição Quantitativa (FAÇA ou REPITA) é um tipo de repetição que ocorre um determinado número de vezes. Determinamos as ações que queremos executar e o número de vezes que elas devem ser executadas. Exemplo • Guardar peças de roupa: ◦ Dado que existem 5 peças de roupa para guardar (e que a porta do guarda-roupas está aberta) ◦ REPITA 5 vezes as etapas abaixo: ▪ Pegar uma peça ▪ Colocar uma peça no guarda-roupas
um tipo de repetição que ocorre até que cheguemos a uma determinada condição. Quando a condição que queremos é atingida, o laço de repetição termina. Determinamos as ações que queremos executar repetidamente e a condição para que elas parem de ser executadas. Exemplo • Guardar peças de roupa: ◦ Dado que existem 10 peças de roupa para guardar (e que a porta do guarda-roupas está aberta) ◦ ENQUANTO tiverem peças de roupa em cima da cama, repita as etapas abaixo: ▪ Pegar uma peça ▪ Colocar uma peça no guarda-roupas
iremos jogar o Lego Game. O jogo consiste de um tabuleiro, peças de Lego e um dado. Utilizamos o dado para mover nosso personagem pelo tabuleiro. A seguir podemos encontrar as regras da partida e o tabuleiro a ser utilizado: • Regras ◦ Após definida a ordem dos jogadores, o jogador deve iniciar atirando o dado e caminhando (no tabuleiro) o número de casas correspondente ao valor do dado ◦ Ao parar em uma casa, o jogador deve executar o laço de repetição existente naquela casa ou passar a sua vez sem nenhuma movimentação (se for uma casa vazia) ◦ O jogo só termina após todos os participantes chegarem ao fim do percurso ◦ Vence o jogo aquele participante que, ao final do percurso de TODOS os outros jogadores, tiver o boneco com o maior número de peças
permite criar seus próprios jogos, animações, música, arte e histórias interativas. O scratch pode ser acessado na URL: https://scratch.mit.edu/ Na tela inicial, clique no ícone experimente para iniciar. Interface do Scratch O personagem é qualquer objeto do Scratch. Observe que o nosso personagem é representado por um gato e, por isso, toda vez que abrirmos o Scratch, esta figura aparecerá. Podemos ter vários personagens dentro do Scratch, eles podem aparecer, desaparecer e fazer diversas ações envolvendo outros personagens para formar uma animação ou um jogo. A interface do Scratch web é como a imagem abaixo. À esquerda temos o nosso cenário, que é onde iremos colocar nossos personagens, fundos e é onde a mágica acontece. No centro temos os comandos que iremos utilizar no nosso programa e à direita o editor, que será onde colocaremos os blocos que irão ser executados.
mudar o ângulo. Aparência Comandos para controlar o visual do personagem, adicionar fala ou pensamento, mudar o fundo ou aumentar/diminuir o ator. Som Comandos para tocar sons de arquivos. Caneta Comandos para desenhar no retrato , controlar largura da caneta, cor e sombra. Variáveis Comandos para utilização e atribuição de variáveis. Eventos Comandos que contém manipuladores de eventos. Controle Comandos de condicional, repetição e demais controles. Sensores Comandos em que os personagens podem interagir com o ambiente que o usuário criou e pode importar de PicoBoard ou Lego Wed. Operadores Comandos de operadores matemáticos, gerador de números aleatórios, e - ou declaração que compara as posições de atores. Mais blocos Comandos para procedimentos personalizados e dispositivos externos de controle. PRINCIPAIS FUNCIONALIDADES DO SCRATCH Agora, podemos explorar alguns exemplos de ações de cada uma das categorias descritas acima, nas imagens a seguir:
o Scratch e suas funcionalidades, vamos acessar à página (https://scratch.mit.edu/help/) que tem um guia passo-a-passo. Clique na imagem igual à esta: Ou também pode acessar o passo-a-passo do guia prático em um arquivo de imagens: ATIVIDADES NO SCRATCH Agora vamos colocar em prática algumas ações diferentes, de acordo com as imagens a seguir: 1. Mudar a cor do personagem utilizando a barra de espaço. 2. Mover a dançarina na batida do tambor:
Jogo de corrida Todo mundo gosta de uma boa competição e de um bom jogo de corrida. Não é mesmo? Você já parou para pensar como um jogo de corrida funciona por dentro? Como você criaria o seu próprio jogo de corrida? Quais seriam os personagens? Qual seria a disputa? E a programação? Esse será o desafio dessa aula. Vamos aprender a criar um jogo de corrida. Para isso, é preciso que tenhamos dois personagens, um ponto de partida, um ponto de chegada e um cenário para esse joguinho. Passo 1 Vamos começar criando um personagem e programando-o para mover-se para frente após o jogador apertar a seta para a direita. Passo 2 Agora adicione uma linha de chegada e faça o personagem dizer "Eu consegui!" ao tocar na linha. Passo 3 Vamos colocar um pouco de emoção nesse jogo? Adicione um novo personagem que se move automaticamente com passos aleatórios até a linha de chegada. Pronto, agora é só jogar com seu personagem e ser mais rápido que o oponente. Terminou e quer brincar mais com o Scratch?
as seguintes ideias ao jogo existente: • Mudar o que acontece quando clicar no personagem • Adicionar mais personagens para jogar • Adicionar um temporizador
bastante com as linguagens de programação, porém é escrito em português. A idéia é facilitar a construção e a leitura dos algoritmos usando uma linguagem mais fácil aos alunos. AMBIENTE DO PORTUGOL TELA INICIAL
A parte 1 é chamada de "Editor de código". Essa é a parte mais importante do Studio já que é onde você irá adicionar todo o seu código que será executado pelo computador. Tudo que você irá aprender nesse curso, será adicionado nessa parte. A parte 2 é chamada de "Console". Essa parte é como se fosse uma TV onde será exibido o resultado do seu código. Exemplo: existe um comando que se chama ESCREVA, o resultado desse comando aparecerá no Console. A parte 3 é chamada de "Navegação". Essa parte é onde serão exibidas todas as variáveis e funções do seu programa. Você pode clicar nas palavras que aparecem nessa lista, e o Studio irá mostrar no "Editor de código" qual é a parte relacionada.
do Menu: Exibe a tela inicial do Portugol Studio (Ajuda). Ao clicar nesse botão a primeira tela do Portugol é apresentada. Abre um novo arquivo para a edição (escrever um novo programa). Ao clicar nesse botão um novo arquivo será aberto, nele você pode escrever o código do novo programa. Abre um arquivo existente, um programa existente, para editar ou executar. Ao clicar nesse botão uma janela de navegação será aberta (conforme a imagem abaixo), nessa janela voê pode escolher um arquivo que já existe para ser aberto para edição ou então para execução.
o nome do arquivo que está sendo editado. Você pode ter vários arquivos aberto ao mesmo tempo, se isso acontecer o menu vai ser apresentando conforme a imagem abaixo: BOTÕES DO MENU DIREITO 1. Aumenta a fonte do texto 2. Diminui a fonte do texto 3. Permite você buscar alguma palavra no texto 4. Comenta o código selecionado ou a linha que você estiver. Você irá aprender o que é "Comentar o código" logo logo. 5. Descomenta o código selecionado ou a linha que você estiver 6. Expande a tela do "Editor de Código" para ficar maior. 7. Centraliza o "Editor de código" para a linha que você está
"Dark" para testar. COMENTAR O CÓDIGO Muitas vezes o código começa a ficar complicado e é interessante escrever umas linhas explicando o que o código faz. Essa linha que explica é chamada de "Comentário". No Portugol um comentário é uma linha que começa com duas barras. A imagem abaixo mostra um comentário (em verde) e uma linha de código com o comando ESCREVA. BOTÕES DO MENU SUPERIOR ESQUERDO 1. Salvar ◦ Ao clicar nesse botão o programa é salvo, em um arquivo, com o nome que você escolheu. Se o programa ainda não tiver sido salvo, ele executa a mesma operação do botão "Salvar como..." 2. Salvar como… ◦ Ao clicar nesse botão é aberta uma janela, e você deve escolher o local onde o programa será salvo. Para isso, você deve digitar o
(olamundo, por exemplo) e clicar no botão Salvar: 3. Passo-a-passo ◦ Ao clicar nesse botão o programa começa a executar no modo passo-a-passo. A cada vez que esse botão é clicado, o cursor executa a linha seguinte. A linha que está executando fica marcada na cor verde, indicando a posição da instrução atual que está sendo executada. 4. Executar ◦ Ao clicar no botão executar, o programa é executado do início ao fim, e podemos acompanhar o resultado da execução no Console.
ou no modo passo-a-passo, ao clicarmos no botão interromper, a execução termina e podemos voltar a escrever o código novamente. ESCREVA O comando escreva é utilizado quando deseja-se mostrar informações na janela do Portugol Studio, ou seja, é um comando de saída de dados.
a mensagem "Olá Mundo!". 2) Escreva um programa que escreve na tela um contador que conte de 9 (nove) até 0 (zero) apresentando na tela só um número de cada vez, na ordem correta de contagem do maior para o menor. 3) Escreva um programa que escreve na tela o resultado da conta matemática que mostra o número de aulas que os alunos do Educod@r tem por mês. Por exemplo, se os alunos tem 3 aulas por semana e o mês tem 4 semanas, o programa deve mostrar o resultado da mutiplicação de 3 aulas por semana vezes as 4 semanas do mês. 4) Escreva um programa que escreve na tela o nome completo de todos os alunos do Educod@r. Cada nome deve ser escrito em uma linha, somente um nome por linha. 5) Escreva um programa que escreve na tela um o nome do seu colega da direita e um caracter especial, qualquer um dos apresentados abaixo: ! @ # $ % ^ & * ( ) { } [ ] | \ ? ~ < > + = Variáveis Variáveis são utilizadas quando queremos armazenar uma informação no nosso sistema para possamos utilizá-la depois. São compostas de três partes: nome, valor e tipo de dado. Por exemplo, quando perguntamos: - Qual o seu endereço? - Rua Qualquer, número 1. Podemos dizer que endereço é uma variável, com nome endereço e valor Rua Qualquer, número 1. O tipo de dado, que nesse caso é cadeia, vai ser discutido mais tarde. Você pode imaginar a variável como um caderno de anotações.
não esquecer dele no futuro. Você escreve a informação no caderno e todo dia antes de sair de casa você consulta ele para saber o que precisa ser feito nesse dia. Nesse exemplo você é o software que verifica a variável (caderno), que toma decisões baseadas nas informações dessa variável (compromissos no caderno). Com o software, funciona de forma bem parecida, ou seja, a variável terá informação que ajuda quando é necessário tomar decisões na execução do seu código. Por que usar? Caso seu software não use variáveis ele não poderá tomar decisões, ou seja, ele não poderá mudar seu comportamento. É como se você só fizesse o mesmo compromisso todos os dias e não pudesse mudar ele porque você não sabe onde anotar o que precisa ser feito. Como usar? Em Portugol, declaramos variáveis assim: <tipo de dado> <nome da variavel> Exemplos: inteiro idade caracter letra real altura Para atribuir um valor a uma variável, usanos o sinal de igual (=), nesse formato <nome da variavel> = <valor> Exemplos: idade = 16
para o valor DEVE SER do mesmo tipo de dado da variável, senão ocorrerá um erro, como o abaixo. inteiro idade idade = 'a' Podemos inicializar a variável no momento de criação, seguindo a sintaxe: <tipo de dado> <nome da variavel> = <valor> Exemplos inteiro idade = 16 caracter letra = 'a' real altura = 1.76 Na próxima página vamos descrever os tipos de dados com mais detalhes. Tipos de dados
baseado em características comuns. Quando falamos em caderno, por exemplo, você sabe o que é, assim como quando falamos em livro. Todos os cadernos tem características em comum: tem páginas. Assim como os livros: tem páginas com textos escritos. Textos tem palavras, palavras tem letras. No Portugol não é diferente, cada variável é de um tipo: Inteiro Inteiros só armazenam números inteiros, sem vírgula. Por exemplo: inteiro anoAtual = 2016 inteiro idade = 15 inteiro quantidadeDeMacas = 2 Caracter Você lembra quando falamos de textos, palavras e letras? Pois bem, o tipo caracter armazena, como o próprio nome diz, caracteres. Dê uma olhada no teclado: cada tecla que escreve algo na tela pode ter seu valor em uma variável do tipo caracter. Não só letras do alfabeto, mas também caracteres especiais e números (porém estes estarão em modo texto). Para ser um valor válido, o caracter deve estar entre aspas simples, como abaixo caracter letraA = 'a' caracter sim = 'S' caracter especial = '@' caracter numero1EmTexto = '1' Cadeia Falamos que caracter armazena letras, lembra? Seguindo o exemplo do texto, cadeia armazena palavras, frases ou textos, como "Marcelo", "Rua Qualquer, número 1", etc. cadeia meuNome = "Marcelo" cadeia cidade = "Porto Alegre" cadeia mensagem = "Bom dia, tempo ensolarado em Porto Alegre." Real
com vírgula (quebrados), como 1.23, 4.58, 3.1415, etc. Vale salientar que em portugol a vírgula deve ser substituída por um ponto. real altura = 1.85 real distancia = 3.35 real preco = 5.99 Logico Há apenas dois valores para o tipo logico: verdadeiro ou falso. logico estouAprendendoPortugol = verdadeiro logico estaChovendo = falso Anotações ___________________________________________________________________________ ___________________________________________________________________________ ___________________________________________________________________________ ___________________________________________________________________________ ___________________________________________________________________________ Usos e Exemplos Variáveis são usadas como a memória do seu programa. Usamos variáveis sempre que for preciso salvar alguma informação para usar mais tarde no programa. Exemplo 1 Crie uma variável com o ano que estamos e mostre o valor:
você nasceu usando a variável "ano_atual" como referência e armazenando sua idade na variável "idade": Exemplo 2 Crie variáveis para armazenar textos. Uma para nome e outra para sobrenome e mostre seus conteúdos: Ficou tudo junto né? Adicione um espaço entre nome e sobrenome:
por ano, cada uma valendo 50 pontos. Escreva um programa que pergunta ao usuário as notas que ele tirou nas provas e imprime a nota final (soma das duas notas) na tela. Exemplo 4 Quando você faz cadastro em um site (Facebook, por exemplo), você informa dados como seu nome, data de nascimento, número de telefone, etc. Depois de informar todos esses dados, o site mostra as informações que você inseriu para que você possa conferir tudo e ter certeza que seu cadastro está certo. Faça um programa com comportamento parecido, onde o usuário insere seu nome, idade e cidade e o programa mostra as informações do usuário na tela para que ele possa conferir.
valor a. 10 ( ) cadeia b. "Banana" ( ) logico c. 15.98 ( ) caracter d. VERDADEIRO ( ) inteiro e. 'F' ( ) real 2- O que será impresso na tela ao executar os seguintes códigos? inteiro numero = 10 inteiro multiplicador = 2 a. Escreva (numero * multiplicador) b. Escreva (numero + multiplicador) c. Escreva (numero - multiplicador) 3 - Declarando variáveis a. Declare um inteiro chamado soma b. Declare um caracter chamado letra c. Declare uma variável chamada dinheiro que possa ser utilizada para guardar moeda. d. Declare uma variável chamada esta_chovendo e atribua o valor FALSO 4 - Dados pessoais a. Pergunta nome da pessoa b. Pergunta nome do melhor amigo c. Pergunta cidade onde nasceu d. Pergunta idade e. Ao final de tudo printa: i. Olá ii. <Fulano> iii. Seu melhor amigo é iv. <Beltrano> v. Você nasceu em vi. <Cidade> vii. Sua idade é viii.<idade>
o nome do time A b. Pergunta quantos gols o time A marcou c. Pergunta o nome do time B d. Pergunta quantos gols o time B marcou e. Ao final de tudo printa: i. "O placar final é: gols_do_time_a x gols_do_time_b. O vencedor é: time_vencedor" 6 - Algoritmo para formatar o nome de uma pessoa: a. Leia para variável nome o primeiro nome de uma pessoa b. Leia para variável sobrenome seu sobrenome c. Faça variável nomecompleto receber o nome e o sobrenome com um espaço no meio. d. Mostre o valor da variável nomecompleto na tela
tipos valores. Sendo que, o resultado desta comparação será sempre um valor lógico (verdadeiro ou falso). Operadores lógicos permitem combinar valores lógicos em um novo valor lógico. Vamos explorar estes conceitos em mais detalhes, logo abaixo. Operadores Relacionais == (Igual) É representado pelo símbolo de dois iguais (==). É utilizado para comparar dois valores e verificar se estes são iguais. Exemplos: • 1 == 1 : Verdadeiro (1 é igual a 1) • 2 == 1: Falso (2 não é igual a 1) • 'A == 'A': Verdadeiro ('A' é igual a 'A') • 'A' == 'a': Falso ('A' não é igual a 'a') • 'A' == 'B': Falso ('A' não é igual a 'B') != (Diferente) Ao contrário do operador igual (==), o diferente (representado por !=) compara dois valores para saber se estes são diferentes. Exemplos: • 1 != 5 : Verdadeiro (1 é diferente de 5) • 'A' != 'B': Verdadeiro ('A' é diferente de 'B') • 'A' != 'A': Falso ('A' não é diferente de 'A') > (Maior que) Representado por >. Serve para verificar se o valor da esquerda é maior que o da direita. Exemplos: • 2 > 1 : Verdadeiro (2 é maior que 1) • 3 > 2 : Verdadeiro (3 é maior que 2) • 1 > 2 : Falso (1 não é maior que 2) • 1 > 1 : Falso (1 não é maior que 1)
o valor da esquerda é menor que o da direita. Exemplos: • 1 < 2 : Verdadeiro (1 é menor que 2) • 2 < 3 : Verdadeiro (2 é menor que 3) • 2 < 1 : Falso (2 não é menor que 1) • 2 < 2 : Falso (2 não é menor que 2) >= (Maior ou Igual) Representado pelo sinal >=. Serve para verificar se o valor da esquerda é maior OU igual ao da direita. Exemplos: • 2 >= 1 : Verdadeiro (2 é maior que 1) • 3 >= 2 : Verdadeiro (3 é maior que 2) • 2 >= 2 : Verdadeiro (2 não é maior que 2, mas 2 é igual a 2) • 1 >= 2 : Falso (1 não é maior nem igual a 2) <= (Menor ou Igual) Representado pelo sinal <=. Serve para verificar se o valor da esquerda é menor OU igual ao da direita. Exemplos: • 1 <= 2 : Verdadeiro (1 é menor que 2) • 2 <= 3 : Verdadeiro (2 é menor que 3) • 3 <= 3 : Verdadeiro (3 não é menor que 3, mas 3 é igual a 3) • 4 <= 3 : Falso (4 não é menor nem igual a 3)
condições, são verdadeiros. No exemplo abaixo está sendo avaliado se ambas condições são atendidas: X1 E X2 X1 X2 X1 E X2 falso falso falso falso verdadeiro falso verdadeiro falso falso verdadeiro verdadeiro verdadeiro Ou Permite determinar se algum dos operadores, ou condições, é verdadeiro. No exemplo abaixo está sendo avaliado se alguma das condições é atendidas: X1 OU X2 X1 X2 X1 OU X2 falso falso falso falso verdadeiro verdadeiro verdadeiro falso verdadeiro verdadeiro verdadeiro verdadeiro
que fazem a mesma coisa independente dos valores das variáveis. Mas quando estamos programando, muitas vezes queremos que o software tome decisões diferentes dependendo do valor que ele recebe. Para fazer isso, vamos aprender a usar condicionais. Os condicionais possibilitam fazer operações somente se uma condição é verdadeira. Isso nos permite deixar os programas muito mais inteligentes! COMANDO Vamos fazer um programa que nos avisa quando está frio. Para isso, podemos começar pegando qual a temperatura do dia de hoje: Agora, nosso programa já tem a temperatura de hoje. Mas o que realmente queremos é que ele nos responda se está frio ou não. Primeiro, vamos definir que toda temperatura abaixo de 16 graus é frio. Assim, podemos fazer o seguinte:
é: verificar se a condição é verdadeira e, somente se for, ele executa o comando. No exemplo acima, somente se a temperatura for menor que 16 o programa vai escrever a frase. COMANDO Agora que já temos um programa que nos avisa quando está calor. E agora, o que devemos fazer para o programa nos avisar quando estiver estiver frio? Também podemos fazer isso! Veja como:
verdadeira, isto é, toda vez que a temperatura for maior (ou igual) a 16, o programa vai imprimir a frase "Hoje não está frio". COMBINANDO MAIS DE UM COMANDO Nosso programa agora já sabe nos dizer se está frio ou não. E se quisermos saber se o dia de hoje está quente? Podemos usar mais condições! Dessa forma, temos 3 possibilidades diferentes para a resposta do programa: • "Hoje está frio!": Se a temperatura for menor que 16 • "Hoje está quente!": Se a temperatura for maior que 26 • "Hoje está tranquilo e favorável": Se a temperatura estiver entre 16 e 26
sabe nos dizer se está frio ou não. Com base nisso, podemos escolher que tipo de roupa podemos vestir. Mas se quisermos que nosso programa nos avise para levar o guarda-chuva, no caso de um dia de chuva, como podemos fazer? No exemplo acima, informamos 2 dados variáveis para o programa a temperatura do dia e a condição de chuva. Usando essas informações, o programa nos retorna 4 conselhos diferentes: • "Hoje está frio e chovendo, você pode levar um casaco e um guarda-chuva": Se a temperatura for menor que 16 e estiver chovendo • "Hoje está frio e chovendo, você pode optar por roupas leves, mas não esqueça o guarda-chuva": Se a temperatura for maior (ou igual) a 16 e estiver chovendo • "Hoje está frio, você pode levar um casaco": Se a temperatura for menor que 16 e não estiver chovendo • "Hoje está calor, você pode optar por roupas leves": Se a temperatura for maior (ou igual) a 16 e não estiver chovendo
são parecidos com decisões que tomamos no dia-a-dia, e como podem ser úteis para automatizar tarefas que antes precisávamos pensar antes de tomar uma decisão. Os conceitos aprendidos, quando combinados com as estruturas de repetição, que veremos a seguir, são ferramentas poderosas que nos ajudam a automatizar os mais diversos procedimentos do nosso dia-a-dia. Elevadores, robôs e jogos utilizam essas idéias para facilitar e divertir as nossas vidas! Você está animado para aprender mais? Exercícios 1. Faça um programa que leia um número e escreva: - "Menor que 100" se ele é menor que 100. - “Maior que 100" se ele é maior que 100. 2. Faça um programa que leia a idade (numero) de uma pessoa e informe a sua classe eleitoral: - Se a idade for menor que 16, escreva "não eleitor". - Se a idade for maior que 65, escreva "eleitor facultativo". 3. Faça um programa que leia se a lâmpada está acesa (lógico) e escreva. - "Economize luz, desligue a lâmpada", se o resultado for verdadeiro. 4. Faça um programa que leia uma senha (cadeia) e escreva: - "Bem vindo", se a senha for igual a "minhasenha" - "Senha inválida", caso a senha for diferente de "minhasenha" 5. Faça um programa que leia o dia da semana e informe uma das mensagens: - Se o dia da semana for "sexta" escreva "Quase fim de semana" - Se o dia da semana for "domingo" escreva "Fim de semana está acabando"
uma pessoa (real) e escreva: - "Você pode se alistar no exército", se a altura for maior ou igual que 1,55 - "Você não pode se alistar no exército", se a altura for menor que 1,55 7. Faça um programa que leia o mês do ano (número) e um dia do mês (número) e escreva: - se o mês for dezembro - se o dia for 4, escreva "A Formatura é hoje" - se o dia for menor que 4, escreva "A Formatura está chegando" - se o dia for maior que 4, escreva "Já estou formado!" 8. Faça um programa que leia a nota de 5 provas e escreva: - "Parabéns você passou de ano", se a média for maior que 7 - "Você rodou", se a média for menor que 7 9. Faça um programa que leia 3 números e escreva qual é o maior deles 10. Faça um programa que leia a temperatura (número) e escreva: - "Está ficando frio", se a temperatura for menor ou igual a 20 - "Está muito quente", se a temperatura for maior ou igual a 30 - "A temperatura está boa", se a temperatura for maior que 20 e menor que 30. 11.Faça um programa que leia dois valores inteiros e escreva qual deles é o maior. 12.Faça um programa que leia qual o tipo de animal. Se o animal for um gato escreva "miau" se for cachorro escreva "au au".
escrever estruturas condicionais, você pode ter olhado em alguma parte do seu código e visto que alguma daquelas ações você gostaria de repetir mais de uma vez. Mas como fazer isso sem ficar repetindo várias vezes o mesmo código? Lembra-se do seu gatinho lá nas aulas de Scratch? Você tinha um comando com o qual você faz caminhar o gatinho um passo. Agora pense se você quisesse que ele caminhasse 1.000 passos. Seria muito trabalhoso repetir todo o código. Mas é possível fazer o gatinho caminhar esses 1.000 passos com pouco código. Usando estruturas de repetição você facilmente poderia fazer o gato andar 10, 1.000 ou quantos você quiser, sem aumentar a quantidade de código. Uma estrutura de repetição permite, como o nome diz, repetir parte de um algoritmo ou um algoritmo completo por quantas vezes for necessário. Esse número de repetições pode ser fixo ou pode estar limitado por uma condição definida por você. Mas lembre-se, essa limitação é necessária já que não pode se repetir de forma infinita. Existem três tipos básicos de estruturas de repetição: Para, Enquanto, Faça-Enquanto. Nós iremos aprender os dois primeiros. PARA A estrutura é composta da palavra reservada para, abre parênteses, a declaração de uma variável de controle, ponto e virgula, a condição a ser testada, ponto e virgula, uma alteração na variável de controle a ser feita a cada iteração, fecha parênteses, e entre chaves as instruções do programa. para <variável contadora> DE <valor inicial> ATE <valor final> [PASSO <valor de incremento>] { <instruções a serem executadas até a <variável contadora> atingir o valor final> }
5 vezes, utilizando o para. Entendendo a estrutura: O comportamento da estrutura está definido em para (contador = 1; contador <= 5; contador ++). Definimos um contador com um valor inicial 1 (contador = 1), ele indica a partir de qual valor vamos fazer essa contagem. Ele nos auxilia a controlar a quantidade de repetições que vamos fazer. Depois é definido o limite das repetições. Nesse caso, o codigo se repete enquanto o contador for menor ou equal a 5 (contador <= 5). Ao final, adicionamos ao contador + 1 (contador ++), que define que a instrução foi realizada mais uma vez, desta forma a nossa estrutura entende quantas vezes já foram executadas . Ao executar o programa atribuindo o valor 5 para a variável numero: Quando o contador for resultado = resultado + numero O resultado será 1 resultado = 0 + 5 5 2 resultado = 5 + 5 10 3 resultado = 10 + 5 15 4 resultado = 15 + 5 20 5 resultado = 20 + 5 25
(comando) enquanto, a condição a ser testada entre parenteses, e entre chaves a lista de instruções que se deseja executar. enquanto <expressão lógica> { <instruções a serem executadas enquanto a expressão lógica resultar em VERDADEIRO> } No código abaixo, vamos somar um mesmo número por 5 vezes, utilizando o enquanto. Entendendo a estrutura: O comportamento da estrutura está definido em enquanto(contador <= 5). O comportamento é o mesmo do para.
a variável numero: Quando o contador for resultado = resultado + numero contador++ O resultado será 1 resultado = 0 + 5 2 5 2 resultado = 5 + 5 3 10 3 resultado = 10 + 5 4 15 4 resultado = 15 + 5 5 20 5 resultado = 20 + 5 6 25 FAÇA-ENQUANTO A sintaxe utilizada são as palavras faça e enquanto, onde faça é o início do código a ser executado e o enquanto possui a condição até quando esse mesmo código vai ser executado. Diferente do enquanto, faça-enquanto faz uma primeira execução sem nenhuma condição, logo após se a condição for verdadeira o código é executado novamente, a partir do faça, até que a condição seja falsa para sair do laço e continuar o programa. faça { <instruções a serem executadas enquanto a expressão lógica resultar em VERDADEIRO> } enquanto <expressão lógica>
5 vezes, utilizando o faça-enquanto. O comportamento é o mesmo do para e do enquanto. Ao executar o programa atribuindo o valor 4 para a variável número: Quando o contador for resultado = resultado + numero contador++ O resultado será 1 resultado = 0 + 4 2 4 2 resultado = 4 + 4 3 8 3 resultado = 8 + 4 4 12 4 resultado = 12 + 4 5 16 5 resultado = 16 + 4 6 20 PARA x ENQUANTO x FAÇA-ENQUANTO
para e enquanto, vamos aprender quando utilizar um ou outro. Quando sabemos exatamente quantas vezes um determinado conjunto de instruções deve ser executado, o ideal é utilizar a estrutura para. Nessa estrutura é possível definir o começo e o fim da repetição, ou seja, definir exatamente quantas vezes será executada. Ex: Escrever na tela 10 vezes o seu nome Existem situações que não é possível determinar quantas vezes uma determinada instrução será executada. Se não é possível determinar o número de repetições então a melhor estrutura de repetição a ser utilizada é o enquanto. Ex: Escrever na tela até que o número digitado seja exibido. Quando queremos que o programa execute ao menos uma vez o código e depois faça uma validação de condição a estrutura a ser utilizada é o faça-enquanto. Nessa estrutura é possível definir o fim da repetição, ou seja, definir exatamente quantas vezes será executada. Ex: Escrever uma palavra inversa caractere por caractere. Exercícios PARA 1) Escreva na tela os números de 1 à 100, um abaixo do outro. 2) Escreva na tela os números de 100 à 1, um abaixo do outro. 3) Imprima a tabuada do 5 na tela. 4) Faça um programa que leia uma variável numero, some todos os números inteiros de 1 até o valor da variável e mostre o resultado obtido. ENQUANTO 5) Escreva na tela os números de 1 à 100, um abaixo do outro.
idade enquanto o valor for diferente da sua idade. Peça para seus colegas testarem o programa e veja quantas vezes eles erram até acertar sua idade. 7) Faça um programa que fique lendo e somando números enquanto a soma deles seja inferior a mil. 8) Faça um programa que leia números enquanto forem > 10 e imprimir quantos números foram digitados Vetores Vetor é um elemento que armazena um conjunto de variáveis do mesmo tipo, funcionando como uma lista de elementos. Por exemplo, um vetor pode ser utilizado para armazenar uma lista de nomes de 12 alunos, utilizando um vetor de 12 posições. Os vetores servem para que você consiga armazenar e percorrer várias informações do mesmo tipo e depois utilizá-las. Você consegue manter o vetor e mudar as informações que estão dentro dele. Podemos criar vetores com todos os tipos de variáveis: • caracter • cadeia • inteiro • real • lógico O vetor é representado por colchetes [ ], ele recebe os valores dentro de chaves { } e dentro do vetor os valores são separadas por vírgulas. Exemplo: inteiro numeros_pares[] = {2, 4, 6, 8, 10} Dessa forma, estamos criando um vetor chamado numeros_pares, que recebe valores do tipo inteiro. Nesse caso, a lista de valores que estão sendo recebidos são {2,4,6,8,10} Cada vetor só pode receber uma lista de valores de um mesmo tipo. Ou seja, se você quiser salvar os nomes dos alunos e a idade de cada um, será preciso ter duas
para listar todas as idades. Você não pode armazenar nomes e idade no mesmo vetor. Exemplo: cadeia nome_alunos[] = {“Amanda”, “Bruna”, “Carlos”, “Daniela”} inteiro idade_alunos[] = {16, 14, 16, 15} Cada dado que está dentro do vetor fica guardado numa posição que chamamos de item do vetor. Para contar os itens do vetor, começamos sempre do número zero. Assim a última célula é um número a menos do que o total de itens no vetor. Exemplo: Vetor com 4 variáveis: cadeia nome_alunos[] = {“Amanda”, “Bruna”, “Carlos”, “Daniela”} escreva (nome_alunos[0]) // Amanda escreva (nome_alunos[1]) // Bruna escreva (nome_alunos[2]) // Carlos escreva (nome_alunos[3]) // Daniela Veja que na lista acima temos 4 células, para acessar o valor da última, precisamos solicitar a posição de número 3. Criando um vetor para depois definir seus conteúdos: Você pode criar um vetor sem definir os itens dele no momento da criação. Quando você cria o vetor sem itens, você precisa dizer o número de itens que deseja que ele possua. Você só poderá utilizar o número de itens que definiu. Um vetor com quatro posições em branco: cadeia em_branco[4] Depois você pode preencher o vetor lendo as informações da tela: leia(cadeia_em_branco[0]) Exemplos
alunos[] = {"João", "Maria", "José", "Julia"} Qual o nome que está na terceira celula? José. escreva(alunos[2]) // José. Posição 0 1 2 3 4 Vetor alunos João Maria José Julia Não definido Uso inválido de vetores Um vetor com um número e uma cadeia: cadeia vetor_invalido[] = {1, "João"} Um vetor de três posições somente com duas definidas: cadeia vetor_invalido[3] = {1, 2} Um vetor de 4posições inteiro dia_do_mes[4] e você tenta colocar uma nova informação na posição 6 dia_do_mes[6] = 29. Anotações ___________________________________________________________________________ ___________________________________________________________________________ ___________________________________________________________________________ ___________________________________________________________________________ ___________________________________________________________________________
que cada item seja um dos seus nomes. 2. Crie um vetor em que cada item seja o nome dos seus responsáveis. 3. Usando os vetores criados nos exercícios 2 e 3, escreva na tela o seu nome e o nome dos seus pais. Somente o primeiro nome. 4. Crie um vetor com cinco posições em branco e preencha ele lendo da tela. Informe o nome das suas cinco comidas preferidas. 5. Imprima na tela o nome das cinco comidas que você informou. 6. Faça um Programa que leia um vetor de 10 caracteres, e diga quantas consoantes foram lidas. Imprima as consoantes. 7. Crie um vetor com os números de 1 a 5. Imprima na tela a soma das cinco posições. O resultado deverá ser 15. 8. Crie um vetor com os números de 1 a 5. Imprima na tela a multiplicação das cinco posições. O resultado deverá ser 120. 9. Crie um vetor que contenha os valores {verdadeiro, falso}. Crie um condicional que irá imprimir "Consegui" caso o valor da primeira posição seja verdadeiro. Resultado: deverá escrever "Consegui" 10. Crie um vetor de 2 posições com os valores 3 e 5 e outro com os valores 5 e 8. Some a segunda posição do primeiro vetor com a primeira posição do segundo vetor. O resultado deverá ser 10.
tempo é jogado por pessoas das mais diversas gerações. O jogo da velha ou jogo do galo é um jogo e passatempo popular. Seu nome teria se originado na Inglaterra, quando nos finais da tarde, pessoas se reuniram para conversar. As pessoas idosas, por não terem mais condições de fazer outra atividade em razão da dificuldade de enxergar, jogavam este jogo, que passou a ser conhecido como o da "velha". Porém, sua origem teria sido ainda mais antiga. Fala-se em tabuleiros escavados na rocha de templos do antigo Egito, que teriam sido encontrados há 3.500 anos. O jogo baseia-se em um tabuleiro 3x3 onde existem dois símbolos para representar dois jogadores diferentes. Geralmente usamos as letras "X" e "O" como símbolos. O jogo ocorre de forma alternada, ou seja, cada jogador tem direito de marcar um espaço em branco de cada vez. Para vencer o jogo cada jogador deve tentar preencher 3 posições com seu símbolo, seja na vertical, horizontal ou diagonal (como mostrado na figura abaixo). Criando um jogo da velha
2 jogadores e cada jogador deve digitar o seu símbolo e a coordenada que deseja inserí-lo. As coordenadas serão compostas por uma letra e um número. O mapa das coordenadas disponíveis no jogo estão na tabela abaixo: A B C 1 A1 B1 C1 2 A2 B2 C2 3 A3 B3 C3 Exemplo: Simbolo "X" | Coordenada A1 A B C 1 X 2 3 Jogo da velha - Versão 1 Nessa primeira versão, o programa deverá: 1. Pedir para que cada usuário diga qual o seu símbolo em cada jogada. a. Qual tipo deve ser utilizado para a variável simbolo? 2. Pedir para que o usuário digite a coordenada a cada jogada. a. Qual tipo deve ser utilizado para a coordenada? 3. Uma vez lida a coordenada e o símbolo, o programa deve colocar o símbolo escolhido na variável que representa a coordenada.
coordenada o símbolo deve ser colocado. 4. O programa deve verificar após cada jogada se há três coordenadas com o mesmo símbolo, que formem uma linha (horizontal ou vertical) a. Utilizar estrutura de condição para verificar se há três coordenadas com o mesmo símbolo. b. Utilizar estrutura de repetição para que o programa possa ter mais de uma rodada. 5. O programa deve ser finalizado quando um dos símbolos estiver em três coordenadas que formem uma linha (horizontal ou vertical) a. O programa deve exibir o símbolo do jogador vencedor na tela. Jogo da velha - Versão 2 Nessa segunda versão, o programa deverá: 1. Ao invés de verificar apenas se o mesmo símbolo forma uma linha horizontal ou vertical, o programa deverá verificar também linhas diagonais. Para o usuário vencer ele pode ter o mesmo símbolo em três diferentes coordenadas tanto na horizontal, vertical ou diagonal. Jogo da velha - Versão 3 Nessa terceira versão, o programa deverá: 1. Ao invés do jogador dizer em cada jogada qual seu símbolo, pedir apenas na primeira rodada e o programa deverá saber quem é o próximo jogador. Ex:. Jogador A com símbolo "X" e o jogador B com símbolo "K". Após o jogador A, o programa deverá automaticamente trocar o símbolo para o "K" e após o jogador B, o programa deverá automaticamente trocar o símbolo para "X".
Você já aprendeu a usar variáveis. Já aprendeu como mudar o fluxo do programa através de comandos condicionais. Também aprendeu a fazer tarefas repetidamente. Agora chegou a hora de usar tudo isso para organizar a tua vida. Vamos elaborar um programa que organize as tuas tarefas. Você, que é bem desorganizado (que eu sei), vai poder cadastrar as coisas que você deve fazer para não esquecer mais. Você poderá também marcar as tarefas como feitas (depois de terminá-las) e remover aquelas tarefas que não precisam mais ser feitas. Depois disso, você vai ser a pessoa mais organizada do planeta! :) Então, mãos à obra!
Escreva um programa que imprima algo como "Olá, escreva tua tarefa" e leia a primeira tarefa a ser cadastrada. Essa tarefa deve ser impressa na tela depois de lida. • Segundo passo ◦ Múltiplos lembretes Agora que o programa já lê e também escreve uma tarefa, faça ele receber vários lembretes, até o máximo de 10, e escrever todos eles na tela. • Terceiro passo ◦ Separar as tarefas Está meio bagunçado o código, por que ele sempre escreve todas as tarefas quando você inclui uma nova. A próxima etapa é separar essas tarefas. Para isso você deve ler a opção do usuário: Se for inserida a opção "A", devemos adicionar uma nova tarefa; Se for inserida a opção "L", devemos listar as tarefas. • Quarto passo ◦ Remover tarefas Beleza, agora você tem uma lista de lembretes funcionando, certo? Mas como eu faço para retirar uma tarefa da lista? Não consigo retirar a tarefa da minha lista! Calma lá. Vamos resolver isso! Crie uma nova opção para o usuário: "R", de remover. Depois do usuário ter selecionado essa opção, você deve ler qual o índice da tarefa que deve ser removida: de 1 até a quantidade de tarefas cadastradas. Lembrando que o índice em vetores começa em 0. • Quinto passo ◦ Marcar tarefas feitas Como eu fico sabendo quais tarefas eu já terminei? Muito bem, vamos resolver isso! Apresente uma nova opção para o usuário: "F", de Feito! Da mesma forma que escolhemos a tarefa a ser removida, precisamos saber qual tarefa deve ser marcada como feita. Você deve então ler o índice da tarefa e, uma vez que uma tarefa tenha sido feita, ela deve aparecer marcada para o usuário!