Baixe o app para aproveitar ainda mais
Prévia do material em texto
Algoritmos e Linguagem de Programação Prof. Adriano Goularte adriano.goularte@aedu.com 2 Lógica – Frequentemente se associa lógica apenas à matemática, não se percebendo sua aplicabilidade e sua relação com as demais ciências. Podemos relacionar a lógica com a “correção do pensamento”, pois uma de suas preocupações é determinar quais operações são válidas e quais não são, fazendo análises das formas e leis do pensamento. 3 EXEMPLO: Todo mamífero é um animal. Todo cavalo é um mamífero. Portanto, todo cavalo é um animal. Nenhum homem sabe dançar. Este dançarino é homem. Portanto, este dançarino não sabe dançar. 4 Lógica de programação: A lógica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas. Ela permite definir a sequência lógica para o desenvolvimento das aplicações. Então o que é lógica de programação? “Lógica de programação é a técnica de encadear/estruturar pensamentos para atingir um determinado objetivo.” 5 Estes pensamentos podem ser descritos como uma sequência de instruções, que devem ser seguidas para se cumprir uma determinada tarefa. Sequência Lógica – são passos executados até atingir um objetivo ou solução de um problema. 6 Sequência Lógica – Exemplo A gaveta está fechada. A caneta está dentro da gaveta. Um casal com 3 filhos notou que um vaso estava quebrado, enquanto 2 das crianças estavam na escola. Quem é o culpado? 7 Instruções – são um conjunto de regras ou normas definidas para a realização ou emprego de algo. Em informática, é o que indica a um computador uma ação elementar a executar. 8 O pensamento (e a lógica) pode ser expresso através da palavra falada ou da palavra escrita. Um mesmo pensamento pode ser expresso em inúmeros idiomas, tanto oralmente quanto por escrito. 9 Introdução à Algoritmo • Curiosidade • O termo algoritmo data sua origem no ano de 830 d.C., por meio de um estudioso e matemático persa de nome Mohammed Ibn Musa Abu Djefar, conhecido por Al-Khwarizmi, o qual escreveu na ocasião um importante livro sobre álgebra. • Durante o passar de vários anos e após ser usado repetidamente, o nome Al-Khwarizmi foi sofrendo corruptelas, chegando a Algarismo. É deste mesmo radical que vem o termo Algoritmo, utilizado em computação. 10 Algoritmo • É o pensamento descrito como uma sequência de passos que visam atingir um objetivo. • Podemos pensar em algoritmo como uma receita, uma sequência de instruções que executam uma meta específica. • Estas tarefas não podem ser redundantes nem subjetivas na sua definição, devem ser claras e precisas. 11 Algoritmo • Exemplos do mundo real: • Algoritmos de operações básicas (adição, multiplicação, divisão e subtração) de números reais decimais. • Manuais de aparelhos eletrônicos, como um Gravador de DVD, que explicam passo- a-passo como gravar um evento. • Chupar uma bala. • Trocar uma lâmpada. • Etc...... 12 Algoritmo • A importância do algoritmo está no fato de termos que especificar uma sequência de passos lógicos para que o computador possa executar uma tarefa qualquer, pois o mesmo por si só não tem vontade própria, faz apenas o que mandamos. • O Algoritmo permite‐nos abstrair de uma série de detalhes computacionais, que podem ser acrescentados mais tarde. Assim, podemos focalizar nossa atenção naquilo que é importante: a lógica da construção de algoritmos. 13 Fritar um ovo • pegar frigideira, ovo, óleo e sal; • colocar óleo na frigideira; • acender o fogo; • colocar a frigideira no fogo; • esperar o óleo esquentar; • colocar o ovo; • retirar quando estiver pronto. Exemplos de algoritmo 14 Trocar uma lâmpada • pegar uma escada; • posicionar a escada embaixo da lâmpada; • buscar uma lâmpada nova; • subir na escada; • retirar a lâmpada velha; • colocar a lâmpada nova. Exemplos de algoritmo 15 Trocar uma lâmpada • pegar uma escada; • posicionar a escada embaixo da lâmpada; • buscar uma lâmpada nova; • subir na escada; • retirar a lâmpada velha; • colocar a lâmpada nova. Exemplos de algoritmo • pegar uma escada; • posicionar a escada embaixo da lâmpada; • buscar uma lâmpada nova; • acionar o interruptor; • se a lâmpada não acender, então • subir na escada; • retirar a lâmpada velha; • colocar a lâmpada nova. 16 Trocar uma lâmpada • acionar o interruptor; • se a lâmpada não acender, então • pegar uma escada; • posicionar a escada embaixo da lâmpada; • buscar uma lâmpada nova; • subir na escada; • retirar a lâmpada queimada; • colocar a lâmpada nova. Exemplos de algoritmo 17 Trocar uma lâmpadaExemplos de algoritmo • acionar o interruptor; • se a lâmpada não acender, então • pegar uma escada; • posicionar a escada embaixo da lâmpada; • buscar uma lâmpada nova; • subir na escada; • retirar a lâmpada queimada; • colocar a lâmpada nova; • se a lâmpada não acender, então • retirar a lâmpada queimada; • colocar outra lâmpada nova; • se a lâmpada não acender, então • retirar a lâmpada queimada; • colocar outra lâmpada nova; . . . Até quando????? 18 Trocar uma lâmpada Exemplos de algoritmo • acionar o interruptor; • se a lâmpada não acender, então • pegar uma escada; • posicionar a escada embaixo da lâmpada; • buscar uma lâmpada nova; • subir na escada; • retirar a lâmpada queimada; • colocar a lâmpada nova; • enquanto a lâmpada não acender, faça • retirar a lâmpada queimada; • colocar outra lâmpada nova. 19 Desafio Fazer um algoritmo para levar 3 missionários e 3 canibais de um lado para outro de um rio, atravessando com um bote. Neste bote, podem ir no máximo dois de cada vez. Como o bote não pode atravessar o rio sozinho, sempre deve haver pelo menos uma pessoa (missionário ou canibal) conduzindo o bote. Sabe-se que nunca pode ter mais canibais do que missionários em nenhum dos dois lados do rio, senão os canibais comerão os missionários. Por exemplo, se um missionário atravessa com um canibal para uma margem do rio onde há apenas outro canibal, como o número de canibais supera o número de missionários, mesmo que ele não desça do barco os canibais o comerão. O que fazer para levar os 6 de uma margem para outra? 20 21 Solução • passa dois canibais. • volta o canibal • passa dois canibais • volta o canibal • passa dois missionários • volta um canibal e um missionário • passa dois missionários • volta um canibal • passam dois canibais • volta um canibal para buscar o outro canibal. 22 Algoritmo - Características Todo algoritmo deve apresentar algumas características básicas: • ter fim; • não dar margem à dupla interpretação (não ambíguo); • capacidade de receber dado(s) de entrada do mundo exterior; • poder gerar informações de saída para o mundo externo ao do ambiente do algoritmo; • ser efetivo (todas as etapas especificadas no algoritmo devem ser alcançáveis em um tempo finito). 23 Algoritmo - Vantagens A partir dele o programador poderá implementá-lo em qualquer linguagem de programação que conheça ou deseje. Algoritmo + linguagem de programação = programa 24 Algoritmo – Formas de Representação Descrição narrativa - Faz-se uso do português para descrever um algoritmo. Gráfica – Faz-se o uso de gráficos (fluxogramas) para representar a solução. Pseudocódigo – utiliza-se linguagem formal de algoritmos para representar a solução (portugol). 25 Algoritmo Exemplo de um algoritmo para trocar uma lâmpada em descrição narrativa: • acionar o interruptor; • se a lâmpada não acender; • pegar uma escada; • posicionar a escadaembaixo da lâmpada; • buscar uma nova lâmpada; • acionar o interruptor; • subir na escada; • retirar a lâmpada velha; • colocar a lâmpada nova; 26 Algoritmo - Representação gráfica do algoritmo para trocar uma lâmpada (fluxograma). SIMBOLOGIA BÁSICA DE UM FLUXOGRAMA 27 28 - Entrada e saída de dados - Saída de dados em vídeo - Saída de dados em impressora - Símbolo de decisão SIMBOLOGIAS BÁSICAS 29 EXERCICIO 1 : Cálculo da média de notas escolares. - A partir das notas dos alunos, calcular a média e indicar quais foram aprovados e quais foram reprovados. 30 PERGUNTAS QUE DEVEM SER FEITAS: - As notas serão lidas a partir do teclado ou de um arquivo? - Como devo calcular a média? Que equação devo utilizar? - Qual o critério de aprovação? -O resultado deverá ser impresso, apresentado em vídeo ou será enviado para um arquivo? 31 DEFINIÇÃO DO PROBLEMA: - As notas serão lidas a partir do teclado. - A média será calculada com a seguinte expressão: Média = (N1 + N2) / 2 - O aluno é considerado aprovado se sua média é maior ou igual a 5,0. - O resultado será armazenado em um arquivo. 32 DESCRIÇÃO NARRATIVA • digitar notas dos alunos; • calcular as médias; • se media maior ou igual a 5; • gravar no arquivo (aprovado); • se media menor que 5; • gravar no arquivo (reprovado). 33 Início calcular a média dos alunos e apresentar os resultados DESENVOLVIMENTO EM FLUXOGRAMA Fim 34 início entrada das notas cálculo da média: Média = (N1 + N2) / 2 Média ≥ 5 “Aprovado”“Reprovado” fim simnão 35 PSEUDOCÓDIGO inicio real: N1, N2, Média; leia (N1, N2); Média � (N1 + N2) / 2; se (Média >= 5) então escreva (“Aprovado”); senão escreva (“Reprovado”); fimse; fim. 36 EXERCICIO 2 : Eu tenho 3 bolas: A, B e C. Pintei uma de vermelho, uma de branco e outra de azul, não necessariamente nesta ordem. Somente uma destas afirmações é verdadeira: A é vermelha B não é vermelha C não é azul As cores das bolas A, B, e C são, respectivamente: a) vermelha, branca, azul b) branca, vermelha, azul c) vermelha, azul, branca d) branca, azul, vermelha e) azul, vermelha, branca 37 EXERCICIO 3 : No torneio de atletismo, Barnabé, Gumercindo e Teodoro participaram das provas de 100 metros rasos, salto em distância e arremesso de dardo. Cada um deles conseguiu um primeiro lugar, um segundo e um terceiro. Descubra o que cada um conquistou, sabendo que: a) Gumercindo venceu Barnabé no salto em distância; b) Teodoro chegou atrás de Gumercindo no arremesso de dardo; c) Barnabé não chegou em primeiro nos 100 metros rasos. 38 EXERCICIO 3 : • A primeira informação garante que Barnabé não foi o primeiro e Gumercindo não foi o último no salto em distância. • Com a segunda informação sabemos que Teodoro não foi o primeiro no arremesso de dardo e Gumercindo não foi o último. Assim podemos concluir que Gumercindo foi o último nos cem metros rasos. • A terceira informação garante que Barnabé não foi o primeiro nos cem metros, como também não chegou em último (lugar ocupado por Gumercindo); logo ele foi segundo. Portanto, o primeiro ficou com Teodoro. • Sabemos da primeira informação que Barnabé não foi o primeiro no salto; também sabemos que não foi segundo, pois ocupou essa posição nos cem metros. Portanto, terá sido o terceiro, e isso o coloca como primeiro no arremesso de dardo. • No dardo, Gumercindo só pode ter sido o segundo, pois a informação número dois nos garantiu que ele não foi o último. Então sobrou para Teodoro o último lugar. • No salto em distância, sabemos que Barnabé foi o terceiro, Gumercindo o primeiro e Teodoro o segundo. 39 EXERCICIO 3 : Colocação final (do primeiro lugar para o terceiro): Cem metros rasos: Teodoro, Barnabé, Gumercindo; Arremesso de dardo: Barnabé, Gumercindo, Teodoro; Salto em distância: Gumercindo, Teodoro, Barnabé. 40 EXERCICIO 4 : Guilherme, Álvaro e Mané acabaram de terminar um lanche. Um dos três rapazes comeu um lanche de presunto, outro um lanche de peru, e o terceiro, um lanche de frango. Apenas uma das afirmações abaixo é verdadeira: Guilherme comeu o lanche de peru; Guilherme não comeu o lanche de frango; Álvaro não comeu o lanche de frango; Álvaro não comeu o lanche de presunto; Então, Guilherme, Álvaro e Mané comeram respectivamente, os lanches de: a) presunto, frango, peru b) frango, presunto, peru c) peru, frango, presunto d) peru, presunto, frango e) presunto, peru, frango 41 EXERCICIO 5 : Tendo como exemplo os algoritmos desenvolvidos para solucionar o problema da troca de lâmpadas, elabore um algoritmo que mostre os passos necessários para trocar um pneu furado. Considere o seguinte conjunto de situações: • Trocar o pneu traseiro esquerdo; • Trocar o pneu traseiro esquerdo e, antes, verificar se o pneu reserva está em condições de uso; • Verificar se existe algum pneu furado; se houver, verificar o pneu reserva e, então, trocar o pneu correto. Para cada algoritmo faça um refinamento do anterior, introduzindo novas ações e alterando o fluxo de execução de forma compatível com as situações apresentadas
Compartilhar