Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sumário Apresentação da disciplina 32 Introdução 4 Exercícios Resolvidos 5 Exercícios Propostos 7 Lógica de Programação 7 Proposição 10 Lógica Booleana 11 Exercícios Resolvidos 14 Exercícios Propostos 14 Diagrama de Bloco 15 Exercícios Resolvidos 18 Exercícios Propostos 20 Expressões Algorítmicas 21 Constantes e Variáveis 22 Comando de Atribuição 24 Estrutura Condicional 26 Exercícios Resolvidos 29 Exercícios Propostos 31 Estrutura de Repetição 32 Exercícios Resolvidos 37 Exercícios Propostos 40 Anexo I 42 Scratch 42 Criar Conta na Plataforma 43 Criar e Compartilhar Produções 46 Apresentação da disciplina Esta disciplina tem como objetivo ensinar a lógica utilizada na construção de programas de computadores. Esses programas de computadores são construídos por meio de algoritmos, que são o foco da disciplina. O conteúdo ministrado será dividido em 3 partes: 1 Introdução: nesta primeira parte será discutido o conceito de algoritmo, lógica de programação e um pouco sobre a lógica booleana. Nela você irá escrever seus primeiros algoritmos. 2 Diagrama de bloco: nesta parte você vai aprender uma forma mais estruturada para representar um algoritmo. Essa forma utiliza alguns símbolos que facilitam a leitura dos algoritmo. 3 Expressões algorítmicas: aqui será onde você conhecerá estruturas mais complexas para criação de algoritmos, essas estruturas podem ser representadas nos diagramas de blocos ou em uma outra representação de algoritmo, que é o pseudocódigo. Bons estudos! Introdução A palavra algoritmo pode até não ser muito conhecida, mas, provavelmente você já executou um algoritmo. Este termo, apesar de não ser muito utilizado no dia a dia, refere-se a algo muito corriqueiro em nossas vidas. Todo programa de computador é composto de um conjunto de algoritmos. Mesmo ações como cozinhar um prato seguindo uma receita culinária ou resolver um problema do seu computador utilizando um tutorial são exemplos de situações em que você utiliza algoritmos. De acordo com o dicionário Michaelis1 <http://michaelis.uol.com.br/moderno -portugues/busca/portugues- brasileiro/algoritmo/> um algoritmo é um conjunto de regras e operações e procedimentos, definidos e ordenados, usados na solução de um problema, ou de classe de problemas, em um número finito de etapas. Uma das primeiras formalizações do conceito de algoritmo aconteceu em 1936, pela Máquina de Turing, de Alan Turing. A definição formal de algoritmo que utilizaremos nesta disciplina é a seguinte: Uma sequência finita de instruções, que devem ser executadas em um intervalo de tempo finito para alcançarem um objetivo. Embora muitos algoritmos sejam mais complexos que uma receita culinária, o conceito de algoritmo pode ser ilustrado por esse exemplo. Eles podem repetir passos ou necessitar de decisões até que a tarefa seja completada. Mesmo que um algoritmo seja corretamente executado, ele pode não resolver um problema se for feito incorretamente ou se não for apropriado ao problema. Algoritmo não é sinônimo de um programa de computador, ele, na verdade, representa os passos necessários para realizar uma tarefa. Sua implementação pode ser feita por um computador, por outro tipo de máquina ou mesmo por um ser humano. Dois algoritmos diferentes podem realizar a mesma tarefa usando um conjunto diferente de instruções em mais ou menos tempo. Abaixo vemos um exemplo de uma receita de bolo de liquidificador. Repare como este exemplo segue as definições de um algoritmo. http://michaelis.uol.com.br/moderno-portugues/busca/portugues-brasileiro/algoritmo/ http://michaelis.uol.com.br/moderno-portugues/busca/portugues-brasileiro/algoritmo/ http://michaelis.uol.com.br/moderno-portugues/busca/portugues-brasileiro/algoritmo/ Receita de bolo de liquidificador 1. Coloque 3 ovos no liquidificador; 2. Adicione 2 colheres de margarina no liquidificador; 3. Adicione 1 copo de açúcar no liquidificador; 4. Bata os ovos, o açúcar e a margarina no liquidificador por 1 minuto; 5. Adicione 2 xícaras de farinha de trigo; 6. Adicione 1 e 1/2 xícara de leite; 7. Adicione 1 colher de fermento em pó; 8. Bata a farinha, o leite e o fermento em pó com o restante da massa por mais 1 minuto no liquidificador; 9. Unte a forma; 10. Despeje a massa na forma untada; 11. Preaqueça o forno por 5 minutos; 12. Asse em forno médio (180° C) por 20 minutos. Ainda sobre a receita de bolo de liquidificador, podemos afirmar: ● que ela possui 12 instruções, que é uma sequência finita de instruções; ● que ela pode ser executada em um intervalo de tempo finito; ● se executada corretamente, alcança o objetivo de se fazer um bolo. Exercício Resolvido 1 – Escreva, na forma de um algoritmo, os passos que você utiliza para tomar banho. Entrar no banheiro; Despir; Ligar o chuveiro; Passar xampu; Esfregar o cabelo Enxaguar xampu; Ensaboar; Enxaguar; Pegar toalha; Secar; Vestir roupa limpa; Exercícios Propostos 1. Escreva, na forma de um algoritmo, os passos para trocar uma lâmpada. 2. Escreva, na forma de um algoritmo, os passos para trocar um pneu furado. 3. Escreva, na forma de um algoritmo, os passos para calcular a média de dois números. 4. Escreva, na forma de um algoritmo, a receita de seu prato favorito. Lógica de programação A Lógica de Programação é a técnica de desenvolver algoritmos para atingir determinados objetivos. Sendo assim, se você resolveu os exercícios propostos na seção anterior, você já está utilizando a lógica para construir algoritmos. Todo mamífero é um animal Todo cão é um mamífero Logo, todo cão é um animal Mas a Lógica é utilizada em diversas áreas como, por exemplo, na área da Matemática, onde seu objetivo é investigar a veracidade de suas proposições. Assim, podemos dizer que a lógica é a arte de bem pensar, é um produto da coerência e da racionalidade. Uma de suas preocupações é determinar quais operações são válidas ou não, fazendo análises das formas das leis do pensamento. Sempre que pensamos, a lógica está presente. Desde as tarefas mais simples como por exemplo: A gaveta está fechada. O papel está dentro da gaveta. Logo, preciso abrir a gaveta para pegar o papel. Existem muitos jogos que exploram a lógica, assim, vamos indicar alguns para deixar vocês bem afiados em problemas de lógica. O primeiro é o dos missionários e os canibais, nele você tem que ajudar os três missionários e os canibais a atravessarem para a outra margem do rio. Mas os canibais comem os missionários, em qualquer uma das margens do rio, quando estiverem em maior número que os missionários. O jogo pode ser encontrado no seguinte endereço http://www.testesdeqi.com.br/jogos/padres-e-canibais/. No site https://rachacuca.com.br/logica/problemas/ você encontra vários jogos de lógica, em diversos níveis de dificuldade. Aqui fica um desafio para você: resolver o Teste de QI de Einstein, que pode ser encontrado no site https://rachacuca.com.br/teste-de-einstein/. http://www.testesdeqi.com.br/jogos/padres-e-canibais/ https://rachacuca.com.br/logica/problemas/ https://rachacuca.com.br/teste-de-einstein/ https://rachacuca.com.br/teste-de-einstein/ Proposição Willard Van Orman Quine afirma que toda proposição é uma frase, mas nem toda frase é uma proposição; e que uma frase é uma proposição apenas quando admite um dos dois valores lógicos: verdadeiro ou falso. Uma proposição lógica é uma sentença declarativa, seja ela expressa de forma afirmativa ou negativa, à qual podemos atribuir um valor lógico verdadeiro ou falso. É importante ressaltar que nem toda sentença é uma proposição, uma proposição também pode ser expressapor símbolos. Observe as seguintes sentenças: 1. Tenha um bom dia! 2. Minas Gerais fica no Brasil. 3. Poços de Caldas fica em Minas Gerais. 4. Quantas horas são? 5. Poços de Caldas fica no Pará. 6. 1+1=2 7. 5+7=10 8. Leia atentamente. A sentença número 1 não é considerada uma proposição pois não tem um valor verdadeiro ou falso. Já a sentença número 2 é uma proposição de valor verdadeiro, bem como a sentença de número 3. A sentença de número 4 não pode receber um valor verdadeiro ou falso, logo não é uma proposição. No entanto a sentença de número 5 é uma proposição de valor falso. As sentenças número 6 e 7 são proposições, mas a de número 6 é verdadeira e a 7 falsa. Lógica Booleana A lógica booleana, também conhecida por álgebra booleana, foi idealizada por George Boole, tendo suas primeiras publicações em 1854. Ela trabalha com variáveis que podem assumir dois valores: verdadeiro ou falso. Nela o F representa falso e V representa verdadeiro. Em algumas representações computacionais, esses valores são mapeados por 0 e 1, onde F=0 e V=1. Veremos três operadores utilizados na lógica booleana: E, OU e NÃO. É comum encontrar esses operadores sendo usados em inglês: AND, OR e NOT; e também existe uma notação em símbolos: ⋀, ⋁ e ⌐. A operação lógica E, que pode ser representada pelo símbolo ⋀, verifica se as duas variáveis de entrada são verdadeiras. A saída da operação E é verdadeira apenas quando ambas entradas são verdadeiras. Abaixo temos a tabela verdade da operação E. ⋀ 0 1 0 0 0 1 0 1 A operação lógica OU, que pode ser representada pelo símbolo ⋁, verifica se ao menos uma das duas variáveis de entrada são verdadeiras. A saída da operação OU é verdadeira se, no mínimo, uma das entradas for verdadeira. Abaixo temos a tabela verdade da operação OU. ⋁ 0 1 0 0 1 1 1 1 A operação lógica NÃO, que pode ser representada pelo símbolo ⌐, inverte o valor da entrada. Diferente das outras duas operações, o NÃO tem apenas uma entrada e uma saída. A saída da operação NÃO é o inverso da sua entrada. Abaixo temos a tabela verdade da operação NÃO. ⌐ 0 1 1 0 Nos operadores matemáticos como +, -, * e / existe a precedência, as operações de multiplicação e divisão são resolvidas antes das operações de soma e subtração. Os operadores booleanos também têm uma precedência definida, as operações NÃO são executadas primeiro, seguidas pelas operações E, e depois as operações OU. Como na matemática, podemos utilizar os parênteses ( ) para modificar essa ordem. Durante a escrita de algoritmos, também iremos nos deparar com outros operadores, os operadores relacionais. A notação escolhida para esses operadores durante esta disciplina é um pouco diferente da notação padrão, comumente utilizada na Matemática. Futuramente, quando você começar escrever programas em linguagens de programação como C ou Java, verá que essa é a notação utilizada nessas linguagens. A lista dos operadores relacionais que utilizaremos é: = Igual > Maior < Menor >= Maior ou igual <= Menor ou igual ! = Diferente Esses operadores podem ser agrupados de forma a representarem expressões booleanas, essas expressões têm um resultado V ou F, de acordo com os valores de suas variáveis. Alguns exemplos de expressões: 1. idade <= 18 2. ano ! = 2017 3. valor > 200 4. idade >= 65 OU tempoServico >= 35 5. nota >= 60 E frequencia >= 75 6. valor > 50 OU peso < 2 Podemos ler estas expressões da seguinte forma: 1. Idade menor ou igual a 18 anos. 2. Ano diferente de 2017. 3. Valor maior que R$200. 4. Idade maior ou igual a 65 anos ou tempo de serviço maior ou igual a 35 anos. 5. Nota maior que 60 e frequência maior que 75%. 6. Valor maior que R$50 e peso menor que 2kg. Essas expressões podem ser utilizadas em algoritmos para verificar se uma pessoa é menor de idade, se o ano é diferente do ano atual, se o valor de um produto é maior de 200 reais, se um funcionário já está apto para aposentar, se a nota e a frequência de um aluno é suficiente para que ele seja aprovado e se o valor e o peso de um pedido se encaixa na promoção de frete grátis. Exercícios Resolvidos 1. Escreva um algoritmo no qual você digita o ano de nascimento e ele te informa quantos anos você tem ou vai fazer neste ano. Digite seu ano de nascimento. Calcule 2017 - o ano de nascimento digitado. Escreva na tela do computador o valor calculado. 2. Qual o valor esperado nas seguintes operações: a. 18 < 25 b. 18 < 18 c. 27 >= 27 d. NÃO V E F e. NÃO (V E F) f. V OU F a. Verdadeiro b. Falso c. Verdadeiro d. Falso e. Verdadeiro f. Verdadeiro Exercícios Propostos 1. Escreva um algoritmo que receba 4 números inteiros, calcule e mostre a soma desses números. 2. Faça um algoritmo que receba 3 notas, calcule e mostre a média aritmética entre elas. 3. Faça um algoritmo que receba o salário de um funcionário, calcule e mostre o novo salário, sabendo-se que este sofreu um aumento de 25%. 4. Faça um algoritmo que calcule e mostre a área de um triângulo. Sabe-se que: Área = (base * altura) /2 5. Faça um algoritmo que calcule e mostre a área de um círculo. Sabe-se que: A = 𝛑 * R2 e 𝛑 = 3,1415 6. Faça um algoritmo que receba o preço de um produto, calcule e mostre o novo preço, sabendo-se que este sofreu um desconto de 10%. Diagrama de Bloco Existem diversas formas para se representar um algoritmo, os tipos mais utilizados de algoritmos são: ● Descrição Narrativa: o algoritmo é escrito em linguagem natural (língua portuguesa). ● Fluxograma ou Diagrama de Blocos: o algoritmo é escrito utilizando símbolos gráficos predefinidos. ● Pseudocódigo ou Portugol: o algoritmo é escrito utilizando regras predefinidas. Neste caso, a passagem do algoritmo para a linguagem de programação é quase imediata. Até o presente momento, estamos utilizando apenas a descrição narrativa de algoritmos, porém, essa forma tem uma desvantagem, ela é ambígua se tomamos como base a definição de algoritmo “Uma sequência finita de instruções, que devem ser executadas em um intervalo de tempo finito para alcançarem um objetivo”. Ao se utilizar a descrição narrativa, podemos interpretar as instruções de forma equivocada, não alcançando assim o objetivo do algoritmo. Nesta seção iremos estudar como fazemos algoritmos utilizando diagrama de blocos, conhecidos também como fluxogramas. Posteriormente, na seção expressões algorítmicas, iremos aprender um pouco mais sobre o pseudocódigo. O diagrama de blocos utiliza uma sequência de símbolos com significado bem definido, portanto, sua principal função é facilitar a visualização dos passos de um processamento, evitando que as instruções sejam interpretadas de forma equivocada. Nome Símbolo Função Terminal Indica o início e o fim do algoritmo. Transição Indica o sentido do fluxo de dados. Processamento Utilizado para indicar cálculos e atribuições de valores. Entrada de Dados Indica a entrada de dados através do teclado. Exibir Mostra informações ou resultados. Decisão Indica que uma tomada de decisão será feita e que o fluxo de transição poderá ser alterado. Repetição Utilizado para indicar que um conjunto de blocos poderá ser executado repetidamente. Os blocos de decisão e repetição serão discutidos com mais detalhes na seção expressões algorítmicas. Abaixo apresentamos alguns exemplos de diagramas de bloco. Diagrama de bloco com algoritmo para chupar uma bala. Diagrama de bloco com algoritmo que soma dois números. Os diagramas acima foram feitos na ferramenta “lucidchart” e estão disponíveis para visualização no seguinte endereço https://www.lucidchart.com/invitations/accept/669e6e7d-6b9b-4bd6-a09c-f837786edcf1. https://www.lucidchart.com/invitations/accept/669e6e7d-6b9b-4bd6-a09c-f837786edcf1 https://www.lucidchart.com/invitations/accept/669e6e7d-6b9b-4bd6-a09c-f837786edcf1 Exercícios Resolvidos 1. Faça um diagrama de blocos com algoritmo com as atividades que você faz logo que acorda pela manhã. 2. Faça um diagrama de blocos para calcular a média de 4 notas. Exercícios Propostos 1. Escreva, na forma de um fluxograma, um algoritmo com os passos que você utiliza para tomar banho. 2. Escreva, na forma de um fluxograma, um algoritmo com os passos para trocar uma lâmpada. 3. Escreva, na forma de um fluxograma, um algoritmo com os passos para trocar um pneu furado. 4. Escreva, na forma de um fluxograma, um algoritmo que receba 4 números inteiros, calcule e mostre a soma desses números. 5. Escreva, na forma de um fluxograma, um algoritmo que receba o salário de um funcionário, calcule e mostre o novo salário, sabendo-se que este sofreu um aumento de 25%. 6. Escreva, na forma de um fluxograma, um algoritmo que calcule e mostre a área de um triângulo. Sabe-se que: Área = (base * altura)/2. 7. Escreva, na forma de um fluxograma, um algoritmo que calcule e mostre a área de um círculo. Sabe-se que: A = 𝛑 * R2 e 𝛑 = 3,1415 8. Escreva, na forma de um fluxograma, um algoritmo que receba o preço de um produto, calcule e mostre o novo preço, sabendo-se que este sofreu um desconto de 10%. Expressões Algorítmicas Nesta seção iremos escrever os algoritmos na forma de fluxograma, como visto anteriormente, e também iremos utilizar uma nova notação: o pseudocódigo. Para escrever o pseudocódigo devemos seguir algumas regras: ● Todo algoritmo começa com a palavra “início”; ● Todo algoritmo termina com a palavra “fim”; ● Toda instrução termina com “ponto e vírgula”; ● Todo texto que segue os caracteres “//” não será interpretado como instruções, esse texto é conhecido como comentário; ● Não serão utilizados caracteres especiais como ç, ã, é, entre outros; ● O comando “leia” espera que o usuário digite algo no teclado; ● O comando “escreva” imprime o conteúdo entregue a ele na tela; 1 2 3 4 5 início escreva (“Esse é meu primeiro algoritmo em pseudocódigo!”); fim No exemplo acima temos um programa que escreve “Esse é meu primeiro algoritmo em pseudocódigo!” na tela do computador. 1 2 3 4 5 6 7 8 9 10 11 início inteiro número; //esse é outro exemplo em pseudocódigo leia (número); escreva (número); fim Nesse exemplo temos um programa que lê um número do teclado e escreve o número digitado na tela. Constantes e Variáveis Uma variável é um dado armazenado em computador. Esse dado é chamado de variável porque o valor contido nesse espaço de memória do computador varia com o tempo, não é um valor fixo. Como bem sabemos, nosso computador utiliza memória para armazenar dados de forma temporal e essa memória é utilizada também pelos nossos programas para armazenar essas variáveis. Quando declaramos uma variável em um programa, estamos separando um espaço na memória para armazenar o valor dessa variável durante execução do programa. Vamos transcrever esse fluxograma que soma dois números em um programa utilizando pseudocódigo. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 início inteiro número1; inteiro número2; inteiro soma; leia (número1); leia (número2); soma <- número1 + número2; escreva (soma); fim Desta forma declaramos 3 variáveis neste programa, são elas: número1, número2 e soma. Elas são do tipo inteiro e são declaradas pelos comandos das linhas 3, 4 e 5. O comando da linha 7 e 8 faz com que os número1 e número2 sejam lidos do teclado e armazenados na memória do computador. O comando escreva, da linha 12, faz com que o valor que se encontra dentro dos parênteses seja impresso na tela. Os valores dos número1 e número2 lidos do teclado ficarão armazenados nas variáveis enquanto nenhum outro valor for digitado para eles, ou enquanto o programa estiver em execução. Isso significa que depois que o programa terminar de executar esses valores deixarão de existir, assim como as variáveis, e o espaço de memória que estava reservado será também liberado para que outros programas possam usá-lo. Uma constante pode ser considerada uma variável que não tem seu valor alterado. Uma constante também reserva um espaço de memória para o tipo de dado que será manipulado. Entretanto, uma constante armazenará um valor único, um valor que não mudará durante o programa. Um exemplo legal do uso de uma constante é o uso do número 𝝅, vamos supor que você precise trabalhar com esse número calculando a área de dois círculos. Você pode declará-lo como uma constante e utilizá-lo diversas vezes sem medo de que seu valor seja alterado durante a execução do seu programa. 1 2 3 4 início real raio1; real raio2; 5 6 7 8 9 10 11 12 13 14 15 16 17 18 real area1; real area2; constante real pi <- 3.14159265359; leia (raio1); leia (raio2); area1 <- pi * raio1 * raio1; area2 <- pi * raio2 * raio2; escreva (area1); escreva (area2); fim Uma constante chamada pi foi declarada no início do algoritmo, na linha 7, com o valor 3.14159265359 e usada para realizar operações de cálculo de área. Esse valor de pi não pode ser alterado durante o programa por estar definido como sendo uma constante. Lembre-se que constantes e variáveis são espaços de memória reservados para o tipo de dados que você deseja trabalhar. Constantes são valores fixos que você utilizará em seu programa e variáveis são valores que podem variar durante o tempo de execução do seu programa. Sempre que formos declarar as variáveis em nossos programas, devemos escolher identificadores relevantes. Um identificador é o nome que damos às nossas constantes e variáveis. Uma dica boa para vocês é que procurem dar nomes de variáveis o mais próximo possível do problema que estão resolvendo. Desse modo fica muito mais fácil manipular e, principalmente, dar manutenção em um programa assim do que em um programa que você não sabe o que os nomes das variáveis significam. Comando de Atribuição Quando uma variável é declarada, ela não contém nada, caso ela contenha, normalmente é o que chamamos de lixo de memória. A partir da atribuição, a variável passa a armazenar valor atribuído a ela. Depois de ter um valor atribuído, a variável pode ser utilizada em qualquer expressão, inclusive como parte de expressões em atribuições para outras variáveis. Assim, a cada variável ou constante criada, temos que atribuir um valor conforme a sequência lógica do algoritmo. Quando fizermos um cálculo, por exemplo, o resultado deve ser atribuído a uma variável. Para isso adotaremos como sinal de atribuição uma seta <- para a esquerda, indicando para onde vai ficar armazenado o resultado dos cálculos. Sempre que nos referirmos a uma variável, estamos nos referindo ao seu conteúdo. Assim, podemos fazer cálculos usando os nomes das variáveis. 1 2 3 4 5 6 7 8 9 início inteiro x; x <- 100; escreva (x); x<- x + 1; escreva (x); fim No pseudocódigo acima temos um exemplo simples de atribuição na linha 4. Se formos acompanhar a variável x, ela é declarada na linha 3, e o valor 100 é atribuído a ela na linha 4. A linha 6 é um pouco mais complexa para ser interpretada, devemos tomar um pouco de cuidado para conseguirmos o resultado correto. O valor inicial de x é de 100 e foi atribuído na linha 4, ao executarmos a linha 6 temos o valor 1 adicionado ao valor de x e armazenado em x. Assim temos que, à partir da linha 6, x passa a valer 101. Logo, ao executarmos completamente o algoritmo representado acimateremos dois números impressos na tela do computador 100 e 101. Estrutura Condicional Comandos de Controle de Programa são comandos que você pode usar em seus programas para direcionar o fluxo de execução. Um comando de controle de programa é, então, um comando que desvia de uma parte do programa, executa determinada ação, e volta para o fluxo normal de execução. O que acontece é que o programa principal está sendo executado e então, ao chegar em uma linha que contém um comando de controle, o controle do programa passa a não ser mais do programa principal, mas sim desse bloco de código que está sendo executado. O primeiro comando de controle que iremos conhecer é o de decisão, conhecido como desvio condicional. O que estudaremos nesta seção é chamado de SE, em português, também conhecido como IF, em inglês. O comando de desvio condicional faz exatamente o que o próprio nome diz, desvia o programa pela avaliação de uma condição. Além do comando SE, temos o comando ESCOLHA (SWITCH) e o SE SENÃO (IF ELSE). O comando SE (IF) deve ser utilizado sempre quando precisamos analisar uma situação e decidir o que vamos fazer em seguida. Ele funciona mais ou menos assim: se tal condição for verdadeira, faça tal coisa. Já o comando SE SENÃO (IF ELSE) funciona com uma segunda cláusula: Se tal condição for verdadeira, faça tal coisa, caso contrário, faça outra coisa. No fluxograma, o comando de controle é representado por um losango. Onde o fluxo é dividido em dois novos fluxos, a direção que o algoritmo vai seguir depende do resultado da expressão que se encontra dentro do losango de decisão. No fluxograma acima temos um exemplo clássico do comando SE SENÃO. Nesse exemplo são solicitadas duas notas, é calculada a média dessas notas e a situação do estudante é apresentada como “reprovado” caso a média seja menor que 6 e “aprovado” se a média for maior ou igual a 6. O pseudocódigo do algoritmo fica da seguinte forma: 1 2 3 4 5 6 7 8 9 1 0 1 1 1 início inteiro nota1; inteiro nota2; inteiro media; leia (nota1); leia (nota2); media <- (nota1+ nota2) / 2; SE media >= 6 ENTÃO escreva (“Você foi aprovado!”); SENÃO 2 1 3 1 4 1 5 1 6 1 7 1 8 escreva (“Você foi reprovado!”); FIMSE Fim O pseudocódigo apresenta como novidade o comando SE SENÃO, a sintaxe dele está melhor representada abaixo. O código entre <> deve ser substituído no código final. Utilizamos letras maiúsculas apenas para enfatizar a sintaxe, o uso de letras minúsculas não muda a forma com que o código abaixo é entendido. A sequência de comandos 1 é executada caso a condição seja verdadeira e sequência de comandos 2 é executada apenas se a condição for falsa. SE <condição> ENTÃO <sequência de comandos 1> SENÃO <sequência de comandos 2> FIMSE Caso um fluxo de ações não seja necessário quando a condição é falsa, pode-se usar o comando SE de forma mais simples, sem a cláusula SENÃO, conforme exemplificado abaixo. SE <condição> ENTÃO <sequência de comandos> FIMSE Exercícios Resolvidos 1. Faça um fluxograma e escreva o pseudocódigo de um algoritmo que leia as quatro notas bimestrais de um aluno e informe se ele foi aprovado, está em recuperação ou foi reprovado. As condições são as seguintes: ➢ para ser aprovado, a média deve ser maior ou igual a 6; ➢ para estar em recuperação, a média deve ser menor que 6 e maior ou igual a 4; ➢ para ser reprovado, a média deve ser menor que 4. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 início inteiro nota1; inteiro nota2; inteiro nota3; inteiro nota4; inteiro media; leia (nota1); leia (nota2); leia (nota3); leia (nota4); media <- (nota1+ nota2 + nota3 + nota4) / 4; 16 17 18 19 20 21 22 23 24 25 26 SE media >= 6 ENTÃO escreva (“Você foi aprovado!”); SENÃO SE media >= 4 ENTÃO escreva (“Você está em recuperação!”); SENÃO escreva (“Você foi reprovado!”); FIMSE FIMSE Fim Exercícios Propostos 1. Faça um fluxograma e escreva o pseudocódigo de um algoritmo que verifique se uma pessoa pode ou não votar. 2. Faça um fluxograma e escreva o pseudocódigo de um algoritmo que leia o peso de uma pessoa, a altura, e calcule o índice de massa corpórea(IMC). Mostre o resultado na tela. Fórmula para calcular o IMC: peso dividido por altura ao quadrado. O algoritmo deve informar se a pessoa está com o peso ideal, com sobrepeso ou abaixo do peso ideal para sua altura. 3. Faça um fluxograma e escreva o pseudocódigo de um algoritmo que leia as quatro notas bimestrais de um aluno, sua porcentagem de presença e informe se ele foi aprovado, está em recuperação ou foi reprovado. As condições são as seguintes: ➢ para ser aprovado, a média deve ser maior ou igual a 6 e a frequência maior ou igual a 75%; ➢ para estar em recuperação, a média deve ser menor que 6, maior ou igual a 4 e a presença maior que 75%; ➢ para ser reprovado, a média deve ser menor que 4 ou a presença ser menor que 75%. Estrutura de Repetição Seguindo com os comandos de controle que iremos conhecer, teremos as estruturas de repetição. Essas estruturas são responsáveis pela iteração do fluxo do código. A palavra 1iteração é bastante utilizada dentro da informática e significa repetição. Essas estruturas apresentam um laço, também chamado loop, onde no fluxo de execução do código retorna para a estrutura de tomada de decisão. Existem diferentes estruturas de repetição, nesta apostila iremos conhecer duas delas: ● o PARA, conhecido como FOR, em inglês; ● o ENQUANTO, conhecido como WHILE; O comando PARA é uma opção a ser utilizada sempre que você precisar repetir um bloco de comandos. Mas cuidado, todo laço de estruturas de repetição deve ser repetido um número finito de vezes, isto é, a repetição deve ter um fim, caso contrário, o seu programa não chegará a um resultado. Na programação, quando o programa entra nessa repetição infinita é dado o nome de loop infinito. Resumindo, se não tiver um fim definido, aqueles comandos ficarão executando eternamente, o programa ficará travado sem apresentar nenhum resultado, na maioria das vezes, o loop infinito ocorre por um erro de lógica. Por isso deve haver uma forma de controlar e contar quantas vezes o PARA foi executado, isto é, precisamos de um contador que incrementa um valor chamado de contador. No pseudocódigo apresentado, esse incrementador fica implícito, mas em outras linguagens de programação esse contador é implementado de forma explícita. No fluxograma, a estrutura de repetição é representada por um hexágono. Onde o fluxo é dividido em dois novos fluxos, a direção que o algoritmo vai seguir depende do resultado da expressão que se encontra dentro do hexágono de decisão. Uma das direções é um laço que retorna para o próprio hexágono, o outro fluxo possível é fluxo sequencial do algoritmo. Colocar como glossário na lateral da página: 1 Iteração - na programação, é o processo de repetição de uma ou mais ações. A estrutura PARA repete a execução do bloco em um número definitivo de vezes, pois ela possui limites fixos. Devemos utilizar essa estrutura quando se sabe de antemão o número de vezes que o laço deverá ser repetido. Abaixo temos um exemplo em um fluxograma. Esse fluxograma utiliza a estrutura PARA com a finalidade de imprimir os números 1, 2, 3, 4, 5, 6, 7, 8, 9 e 10 na tela do computador. Ele utiliza a variável i para controlar a quantidade de repetições do laço, em que o valor de i é impresso na tela. Normalmente, a variável utilizada na estrutura de repetição tem o nome i, abreviação de iterador. O pseudocódigo desse algoritmo que imprime de 1 até 10 é o seguinte:1 2 3 4 5 6 7 8 9 início inteiro i; PARA i DE 1 ATÉ 10 FAÇA escreva (i); FIMPARA fim A sintaxe básica do comando PARA, em pseudocódigo, é a seguinte: PARA <variável> DE <valor inicial> ATÉ <valor final> FAÇA <sequência de comandos> FIMPARA Lembrando que as palavras-chave estão em letra maiúscula apenas para chamar mais atenção, ao escrever o pseudocódigo ela pode ser escrita com letras minúsculas também. Existe uma segunda forma para se escrever o comando PARA, nesta outra forma definimos o PASSO, que é o valor em que a variável i será incrementada, a sintaxe do comando PARA é a seguinte. PARA <variável> DE <valor inicial> ATÉ <valor final> PASSO <incremento> FAÇA <sequência de comandos> FIMPARA No pseudocódigo abaixo temos a representação de um algoritmo que imprime os números ímpares de 1 a 10. Assim ele irá imprimir os números 1, 3, 5, 7 e 9. 1 2 3 4 5 início inteiro i; PARA i DE 1 ATÉ 10 PASSO 2 FAÇA 6 7 8 9 escreva (i); FIMPARA fim Outra forma de iterar em um algoritmo é a utilização da estrutura ENQUANTO. Apesar dessa estrutura de repetição utilizar o símbolo de decisão no fluxograma, seu comportamento é bem diferente do comando SE, pois ele possui um laço em que o programa repete o fluxo de execução por uma quantidade de vezes definida pela lógica na programação. Assim como no PARA, é muito importante verificar a lógica utilizada neste comando, evitando que nosso algoritmo entre em loop infinito. No comando ENQUANTO existe uma condição a ser analisada, essa condição é responsável pela repetição do laço ou pelo retorno ao fluxo principal do programa. O laço será repetido caso a condição seja V, caso a resposta da condição seja F, ele sai do laço de repetição e retorna para o programa principal. A condição é responsável pela quantidade de vezes que o laço de instruções será executado, assim, enquanto a condição for verdadeira, os comandos dentro do laço serão repetidos. A partir do momento que a condição se tornar falsa, ele sairá do while. A seguir temos o exemplo de um fluxograma que imprime os números de 1 a 10 na tela do computador. O pseudocódigo que executa esse fluxograma seria o seguinte: 1 2 início 3 4 5 6 7 8 9 inteiro i; i <- 1; ENQUANTO i <= 10 FAÇA escreva (i); i <- i + 1; FIMENQUANTO fim A sintaxe do comando ENQUANTO, em pseudocódigo, é a seguinte: ENQUANTO <condição> FAÇA <sequência de comandos> FIMENQUANTO Seguindo os exemplos anteriores, para imprimir os números ímpares utilizando a estrutura do enquanto precisamos apenas controlar o incremento do i de forma diferente. É importante ressaltar que no uso do PARA o incremento é feito de forma automática, no uso do ENQUANTO é de responsabilidade de quem cria o algoritmo incrementar o valor do i para que o algoritmo seja executado de forma correta. A seguir temos o pseudocódigo que utiliza o ENQUANTO para imprimir os números 1, 3, 5, 7 e 9. 1 2 3 4 5 6 7 8 9 início inteiro i; i <- 1; ENQUANTO i <= 10 FAÇA escreva (i); i <- i + 2; FIMENQUANTO fim Exercícios Resolvidos 1. Faça um fluxograma e escreva o pseudocódigo de um algoritmo que mostre todos os números pares entre 0 a 100 utilizando o comando PARA. 1 2 3 4 5 6 7 8 9 início inteiro i; PARA i DE 0 ATÉ 100 PASSO 2 FAÇA escreva (i); FIMPARA fim 2. Faça um fluxograma e escreva o pseudocódigo de um algoritmo que mostre todos os números pares entre 1 a 100 utilizando o comando ENQUANTO. 1 2 3 4 início inteiro i; 5 6 7 8 9 i <- 2; ENQUANTO i <= 100 FAÇA escreva (i); i <- i + 2; FIMENQUANTO fim Exercícios Propostos 1. Faça um fluxograma e escreva o pseudocódigo de um algoritmo que mostre todos os números pares entre 1 a 100. 2. Faça um fluxograma e escreva o pseudocódigo de um algoritmo que mostre todos os números múltiplos de 5 entre 1 a 1000. 3. Escreva um fluxograma que imprima na tela os números de 0 até um número digitado pelo usuário. Parabéns! Agora que você terminou nossa disciplina, você pode treinar mais suas habilidades de construir algoritmos na internet. No Anexo I é apresentado o Scratch, uma ferramenta visual para a programação que permite a criação de jogos e animações, junto você encontra um grupo de pessoas compartilhando suas criações. Disponível no endereço https://scratch.mit.edu/. Caso você queira iniciar a produção de programas de computadores escrevendo código temos a linguagem VisualG. Ela é baseada no portugol, que é uma forma estruturada do português muito similar ao pseudocódigo, visto nas seções anteriores. Com o VisualG você pode escrever programas seguindo a mesma lógica de programação utilizada em linguagens bem poderosas e modernas, com a vantagem de escrever o código em português. Para quem quer aprender mais sobre VisualG, indico o site http://visualg3.com.br/ e o site http://www.apoioinformatica.inf.br/produtos/visualg/linguagem. https://scratch.mit.edu/ http://visualg3.com.br/ http://www.apoioinformatica.inf.br/produtos/visualg/linguagem Anexo I - Scratch O Scratch é uma linguagem de programação visual de uso livre e gratuito desenvolvida pela universidade americana MIT (Massachusetts Institute of Technology). Por não exigir conhecimento prévio de outras linguagens de programação, ela é indicada para crianças e iniciantes na programação. Com ela pode-se criar histórias animadas, jogos e outras aplicações interativas. O acesso à plataforma do Scratch pode ser feito no seguinte endereço: https://scratch.mit.edu/. Página inicial do Scratch A linguagem utiliza uma sintaxe comum a muitas linguagens de programação, por isso é uma ótima forma de se aprender a programar. Cada bloco da linguagem contém um comando em separado, que pode ser agrupado seguindo as regras da linguagem. Junto com a plataforma do Scratch existe uma comunidade voltada para a aprendizagem de programação por meio de projetos compartilhados. Os fóruns de discussão do Scratch em português podem ser encontrados no seguinte endereço https://scratch.mit.edu/discuss/20/. Além do fórum, alguns tutoriais estão disponíveis no endereço https://scratch.mit.edu/tips. Abaixo temos o exemplo de um código que faz com que o ator do programa, que por padrão é um gato, dê 10 passos, diga “Olá!” e dê um miado toda vez que a tecla espaço for pressionada. https://scratch.mit.edu/ https://scratch.mit.edu/discuss/20/ https://scratch.mit.edu/tips Exemplo de código produzido no Scratch Criar conta na plataforma Aqui temos um tutorial passo a passo de como criar uma conta na plataforma do Scratch. Para iniciar seu cadastro, clique no link “Aderir ao Scratch” na página inicial da plataforma. Na tela que surgiu, você deve digitar um nome de usuário no primeiro campo, no segundo campo você deve digitar uma senha e no terceiro você deve confirmar a senha digitada. Na segunda tela do cadastro, você deve colocar seu mês e ano de nascimento, marcar seu gênero e o país que reside. Na tela seguinte você deve colocar seu e-mail e confirmar seu endereço de e-mail. Caso queira receber e-mails sobre o Scratch você deve marcar a última opção. Pronto! Se você seguiu esse algoritmo de forma correta, agora você já é um membro da comunidade do Scratch e pode criar e compartilhar seus programas do Scratch. Aproveite a plataforma para treinar sua lógica de programação e criar jogos e animações. Não se esqueça de marcar sua produção na categoria IFSULDEMINAS e MEDIOTEC para que possamos acompanhar o que nossos alunos estão criando. Criar e Compartilhar produções Após clicar no botão “criar”, do Scratch, devemosmodificar a linguagem escolhida para a construção dos algoritmos. Para escolher a linguagem, basta clicar no símbolo do globo, ao lado do logo do Scratch em laranja no canto superior esquerdo da tela. Uma dica que eu dou para você é que tente utilizar o Scratch em inglês, caso você tenha algum conhecimento sobre a língua inglesa. A maioria das linguagens de programação utilizada atualmente no mercado de trabalho é em inglês, então, aprender a programar no Scratch em inglês facilitará bastante o entendimento de outras linguagens de programação. Para compartilhar algo feito no Scratch, você deve clicar no botão “compartilhar”, que fica no canto superior direito da tela, assim você será redirecionado para outra página, onde adicionará informações sobre o programa que deseja compartilhar. Essa é a página onde você poderá adicionar informações sobre o programa que está compartilhando. Nela você pode informar as instruções, notas e créditos sobre o seu programa. É muito importante preencher esses campos quando publicar suas produções no Scratch, assim as pessoas irão saber quem fez e como utilizar o programa que você criou. Esse exemplo utilizado é uma “Animação do Avião” bem simples que criei para exemplificar o uso do Scratch, ela pode ser acessada no endereço https://scratch.mit.edu/projects/154670370/. Deixo aqui também um jogo criado por um aluno do IFSULDEMINAS durante a disciplina de Algoritmos. O nome do jogo é “Don't drown” e foi criado pelo aluno Jean Melo como trabalho final da disciplina de Algoritmos, do curso Técnico em Informática. O jogo está disponível no endereço https://scratch.mit.edu/projects/89156548/ e mostra um pouco do que pode ser criado na plataforma. https://scratch.mit.edu/projects/154670370/ https://scratch.mit.edu/projects/89156548/
Compartilhar