Post on 13-Dec-2018
PARA DESCONTRAIR
03/05/2016 2IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO
OBJETIVOS DA AULA
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 3
Apresentar os conceitos elementares de lógica e sua aplicação no cotidiano;
Definir algoritmo;
Estabelecer uma relação entre lógica e algoritmos: a lógica de programação;
Exemplificar a aplicação dos algoritmos utilizando situações do dia-a-dia;
Comparar as principais formas de representação dos algoritmos; e
Exercitar o conhecimento aprendido com exercícios diversos.
PROGRAMAR PARA QUE?
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 4
Escrever páginas web
Acertar seu relógio
Aprender a usar mapas
Mostrar para seus amigos que você sabe programar
Parecer estranho
Entender melhor como seu computador funciona
Cozinhar
Salvar o mundo
Software livre
NOÇÕES DE LÓGICA
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 5
Lógica é a ciência que estuda as formas de pensamento.
Lógica é a parte da filosofia que trata das formas do pensamento em geral(dedução, indução, hipótese, inferência etc.) e das operações intelectuais que visam àdeterminação do que é verdadeiro ou não.
Aristóteles é o autor do primeiro trabalho sobre lógica.
A lógica é frequentemente dividida em três partes: o raciocínio indutivo, oraciocínio abdutivo e o raciocínio dedutivo.
NOÇÕES DE LÓGICA
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 6
A Lógica nos acompanha diariamente:
Um bebê sabe que precisa chorar para receber atenção.
Um casal com três filhos notou que um vaso estava quebrado, enquanto duas dascrianças estavam na escola. Quem é o culpado?
Pegar um chiclete. Retirar o papel. Mastigar o chiclete. Jogar o papel no lixo.
Se um carro está com a seta esquerda ligada. Significa que ele vai virar à direitaou à esquerda?
O pensamento (e a lógica) pode ser expresso por meio da linguagem oral ou escrita.
Um mesmo pensamento pode ser expresso em inúmeros idiomas, tanto oralmentequanto por escrito.
NOÇÕES DE LÓGICA
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 7
• O que é Lógica?
A Lógica ensina a colocar “ordem no pensamento”.
• Exemplos:
a. Todo mamífero é um animal.Todo cavalo é um mamífero.Portanto, todo cavalo é um animal.
b. Kaiton é país do planeta Stix.Todos os Xinpins são de Kaiton.Logo, todos os Xinpins são Stixianos.
NOÇÕES DE LÓGICA
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 8
• Existe Lógica no dia-a-dia?
Sempre que pensamos, a lógica ou a ilógica necessariamente nos acompanham.
• Exemplos:
a. A gaveta está fechada.A caneta está dentro da gaveta.Precisamos primeiro abrir a gaveta para depois pegar a caneta.
b. Anacleto é mais velho que Felisberto.Felisberto é mais velho que Marivaldo.Portanto, Anacleto é mais velho que Marivaldo.
NOÇÕES DE LÓGICA
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 9
• Mas e a lógica de programação?
Significa usar a lógica para resolver problemas computacionais.
o O raciocínio é algo abstrato, intangível;
o Os seres humanos têm a capacidade de expressá-lo por meio da palavra;
o Um mesmo raciocínio pode ser expresso em inúmeros idiomas;
o A lógica de programação pode ser representada por inúmeras linguagens deprogramação;
o Algoritmos são uma representação fiel do raciocínio da lógica de programação.
NOÇÕES DE LÓGICA
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 10
• O que é um algoritmo?
o O objetivo principal do estudo da Lógica de Programação é a construção de algoritmoscoerentes e válidos.
o Um algoritmo pode ser definido como uma sequência de passos que visam atingir umobjetivo bem definido.
o Algoritmos são comuns em nosso cotidiano. Exemplo: manual de instalação de uma TV.
o Quando elaboramos um algoritmo, devemos especificar ações claras e precisas, que apartir de um estado inicial, após um período de tempo finito, produzem um estado finalprevisível e bem definido.
o Algoritmo é a descrição de um conjunto de comandos que, obedecidos, resultam em umasucessão finita de ações.
ALGORITMIZANDO A LÓGICA
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 11
• Por que é importante construir um algoritmo?
o Um algoritmo tem por objetivo representar mais fielmente o raciocínio envolvido naLógica de Programação.
o Um algoritmo permite abstrair uma série de detalhes computacionais.
o Uma solução algorítmica para um problema pode ser traduzida para qualquerlinguagem de programação. Este processo é chamado de codificação.
o Alguns algoritmos presentes em nosso dia-a-dia: receita de bolo, orientaçãopara se chegar em algum endereço, realização de alguma tarefa rotineira.
ALGORITMOS - O QUE SÃO?
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 12
Um algoritmo é uma sequência de instruções que resolve uma determinada tarefa.Essas instruções podem ser executadas por um computador ou até mesmo por um serhumano.
Um algoritmo pode ser comparado a uma receita de bolo, onde cada passo dapreparação do bolo corresponde a uma instrução do algoritmo.
Normalmente, desenvolver algoritmos eficientes não é uma tarefa simples. No meioacadêmico, diversas técnicas para o desenvolvimento de algoritmos mais eficientessão estudadas pela Ciência da Computação.
ALGORITMOS - EXEMPLOS
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 13
Algoritmo 1 - Somar três números
Passo 1 - Receber os três números.
Passo 2 - Somar os três números.
Passo 3 - Mostrar o resultado obtido.
ALGORITMOS - EXEMPLOS
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 14
Algoritmo 2 - Fazer um sanduíche
Passo 1 - Pegar o pão.
Passo 2 - Cortar o pão ao meio.
Passo 3 - Pegar a maionese.
Passo 4 - Passar a maionese no pão.
Passo 5 - Pegar e cortar a alface e o tomate.
Passo 6 - Colocar a alface e o tomate no pão.
Passo 7 - Pegar o hambúrguer.
Passo 8 - Fritar o hambúrguer.
Passo 9 - Colocar o hambúrguer no pão.
ALGORITMOS - EXEMPLOS
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 15
Algoritmo 3 - Ir para a escola
Passo 1 - Acordar cedo.
Passo 2 - Ir ao banheiro.
Passo 3 - Abrir o armário para escolher uma roupa.
Passo 4 - Se o tempo estiver quente, pegar uma camiseta e uma calça jeans;
Caso contrário, pegar um agasalho e uma calça jeans.
Passo 5 - Vestir a roupa escolhida.
Passo 6 - Tomar café.
Passo 7 - Pegar uma condução.
Passo 8 - Descer próximo à escola.
ALGORITMOS - EXEMPLOS
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 16
Algoritmo 4 - Sacar dinheiro no banco 24 horas
Passo 1 - Ir até um banco 24 horas.
Passo 2 - Colocar o cartão.
Passo 3 - Digitar a senha.
Passo 4 - Solicitar a quantia desejada.
Passo 5 - Se o saldo for maior ou igual à quantia desejada, sacar;
Caso contrário, mostrar mensagem de impossibilidade de saque.
Passo 6 - Retirar o cartão.
Passo 7 - Sair do banco 24 horas.
ALGORITMOS - TORRES DE HANÓI
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 17
As Torres de Hanói é um quebra-cabeça composto por uma base contendo três torres(A, B e C) e três discos de diâmetros distintos (1, 2 e 3). Neste quebra-cabeça, oobjetivo é encontrar uma forma de mover todos os discos da torre A para a torre C,usando a torre B como espaço auxiliar, de modo que:
apenas um disco seja movido de cada vez;
nenhum disco seja posicionado sobre outro disco de diâmetro menor;
os discos sejam imediatamente transferidos de uma torre para outra.
ALGORITMOS - TORRES DE HANÓI
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 18
Há várias soluções possíveis para este problema. Uma delas é a seguinte:
1º passo: mova o disco do topo da torre A para o topo da torre C.
2º passo: mova o disco do topo da torre A para o topo da torre B.
3º passo: mova o disco do topo da torre C para o topo da torre B.
4º passo: mova o disco do topo da torre A para o topo da torre C.
5º passo: mova o disco do topo da torre B para o topo da torre A.
6º passo: mova o disco do topo da torre B para o topo da torre C.
7º passo: mova o disco do topo da torre A para o topo da torre C.
ALGORITMIZANDO A LÓGICA
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 19
• Vamos a um exemplo?
ALGORITMO 1.1 Troca de 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.
ALGORITMIZANDO A LÓGICA
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 20
• E se a lâmpada não estiver queimada?
ALGORITMO 1.2 Troca de lâmpada com teste
• 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.
ALGORITMIZANDO A LÓGICA
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 21
• Podemos melhorar o algoritmo anterior?
ALGORITMO 1.3 Troca de lâmpada com teste no início
• 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;
• Acionar o interruptor;
• Subir na escada;
• Retirar a lâmpada queimada;
• Colocar a lâmpada nova.
ALGORITMIZANDO A LÓGICA
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 22
• E se a nova lâmpada não funcionar?
ALGORITMO 1.4 Troca de lâmpada com teste e repetição indefinida
• 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;
• Acionar o interruptor;
• 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 a lâmpada nova;
Até quando???
ALGORITMIZANDO A LÓGICA
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 23
• Como corrigir o algoritmo anterior?
ALGORITMO 1.5 Troca de lâmpada com teste e condição de parada
• 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;
• Acionar o interruptor;
• 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 uma lâmpada nova;
ALGORITMIZANDO A LÓGICA
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 24
• E se eu tivesse que trocar várias lâmpadas?
ALGORITMO 1.6 Troca de lâmpada com teste para 10 soquetes
• Acionar o interruptor do primeiro soquete;
• Se a lâmpada não acender, então
• Pegar uma escada;
• Posicionar a escada embaixo da lâmpada;
• Buscar uma lâmpada nova;
• Acionar o interruptor;
• 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 uma lâmpada nova;
• Acionar o interruptor do segundo soquete;
ALGORITMIZANDO A LÓGICA
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 25
ALGORITMO 1.7 Troca de lâmpada com teste para 10 soquetes com repetição
• Ir até o interruptor do primeiro soquete;
• Enquanto a quantidade de soquetes testados for menor que dez, faça
• 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;
• Acionar o interruptor;
• 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 uma lâmpada nova;
• Ir até o interruptor do próximo soquete;
ALGORITMIZANDO A LÓGICA
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 26
Algumas considerações:
Construção de algoritmos usando uma linguagem coloquial;
Estrutura Sequencial: conjunto de ações executadas sequencialmente;
Estrutura Seletiva: teste condicional para executar ou não um conjunto de ações;
Estrutura de Repetição: repetição de um mesmo trecho do algoritmo;
Um programa de computador tradicional não tem conhecimento prévio nemadquire experiências;
Programadores: Construtores de Algoritmos.
ALGORITMIZANDO A LÓGICA
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 27
• De que maneira representaremos o algoritmo?
o Um algoritmo é uma linha de raciocínio, que pode ser descrito de diversas maneiras, deforma gráfica ou textual;
o Os algoritmos vistos até aqui estavam na forma textual, usando português coloquial.
o As formas gráficas são mais puras por serem mais fiéis ao raciocínio original, substituindoum grande número de palavras por convenções de desenhos.
o No material de apoio há um representação do algoritmo 1.7 em formato de fluxogramatradicional e outro em Chapin.
o Quais as vantagens e desvantagens das representações textuais e gráficas?
ALGORITMIZANDO A LÓGICA
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 28
• Qual o problema de usar a língua pátria para escrever algoritmos?
Vejamos a seguinte frase: “O pregador foi grampeado durante o conserto.”
Esse exemplo, quando falado, pode ter até oito sentidos diferentes. Você sabe quais?
o O computador é desprovido do raciocínio necessário para interpretar a frase.
o Para evitar esse e outros problemas, utilizaremos um conjunto de regras que visamrestringir e estruturar o uso do português na representação dos algoritmos.
MÉTODO PARA A CONSTRUÇÃO DE ALGORITMOS
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 29
Para a construção de qualquer tipo de algoritmo, é necessário seguir estes passos:
• Compreender completamente o problema a ser resolvido, destacando os pontos maisimportantes e os objetos que o compõem.
• Definir os dados de entrada, ou seja, quais dados serão fornecidos e quais objetosfazem parte desse cenário problema.
• Definir o processamento, ou seja, quais cálculos serão efetuados e quais as restriçõespara esses cálculos. O processamento é responsável pela transformação dos dados deentrada em dados de saída. Além disso, deve-se verificar quais objetos sãoresponsáveis pelas atividades.
• Definir os dados de saída, ou seja, quais dados serão gerados depois doprocessamento.
• Construir o algoritmo usando um dos tipos descritos nos próximos slides.• Testar o algoritmo realizando simulações.
TIPOS DE ALGORITMOS
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 30
Os três tipos mais utilizados de algoritmos são: descrição narrativa, fluxograma,pseudocódigo ou portugol.
Descrição Narrativa
A descrição narrativa consiste em analisar o enunciado do problema e escrever, usandouma linguagem natural (por exemplo, a língua portuguesa), os passos a serem seguidospara sua resolução.
Vantagem: não é necessário aprender nenhum conceito novo, pois uma língua naturalneste ponto, já é bem conhecida.Desvantagem: a língua natural abre espaço para várias interpretações, o queposteriormente dificultará a transcrição desse algoritmo para programa.
TIPOS DE ALGORITMOS
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 31
Os três tipos mais utilizados de algoritmos são: descrição narrativa, fluxograma,pseudocódigo ou portugol.
Fluxograma
O fluxograma consiste em analisar o enunciado do problema e escrever, utilizandosímbolos gráficos predefinidos, os passos a serem seguidos para sua resolução.
Vantagem: o entendimento de elementos gráficos é mais simples que o entendimentode textos.Desvantagem: é necessário aprender a simbologia dos fluxogramas, e além disso, oalgoritmo resultante não apresenta muitos detalhes, dificultando sua transcrição paraum programa.
FLUXOGRAMA
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 32
Símbolo Significado
Símbolo utilizado para indicar o início e o fim do algoritmo.
Símbolo que permite indicar o sentido do fluxo de dados. Serve exclusivamente
para conectar os símbolos ou blocos existentes.
Símbolo utilizado para indicar cálculos e atribuições de valores.
Símbolo utilizado para representar a entrada de dados.
Símbolo utilizado para representar a saída de dados.
Símbolo utilizado para indicar que deve ser tomada uma decisão, apontando a
possibilidade de desvios.
TIPOS DE ALGORITMOS
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 33
Os três tipos mais utilizados de algoritmos são: descrição narrativa, fluxograma,pseudocódigo ou portugol.
Pseudocódigo ou portugol
O pseudocódigo ou portugol consiste em analisar o enunciado do problema e escrever,por meio de regras predefinidas, os passos a serem seguidos para sua resolução.
Vantagem: a passagem do algoritmo para qualquer linguagem de programação équase imediata, bastando conhecer as palavras reservadas da linguagem que seráutilizada.Desvantagem: é necessário aprender as regras do pseudocódigo, que serãoapresentadas nas próximas aulas.
RESUMO
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 34
A lógica se relaciona com a ‘ordem da razão’, com a ‘correção do pensamento’;
É necessário utilizar processos lógicos de programação para construir algoritmos;
Um algoritmo é uma sequência de passos bem definidos que têm por objetivo solucionar umdeterminado problema;
O exemplo das lâmpadas introduziu o conceito de fluxo de execução.
A estrutura sequencial significa que o algoritmo é executado passo a passo, sequencialmente, daprimeira à última ação.
A estrutura de seleção permite que uma ação seja ou não executada, dependendo do valorresultante da inspeção de uma condição.
A estrutura de repetição permite que trechos de algoritmos sejam repetidos até que uma condiçãoseja satisfeita ou enquanto uma condição não estiver satisfeita.
03/05/2016 35
o Criação de Fluxogramas online
http://www.draw.io
SOFTWARES
IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO
03/05/2016 36
o Racha Cuca
http://rachacuca.com.br/
o Oito sites infalíveis para aprender programação por conta própria
http://computerworld.com.br/gratis-oito-sites-infaliveis-para-aprender-programacao-por-conta-propria
PÁGINAS NA INTERNET
IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO
03/05/2016 37
o Uma breve história da lógica
https://www.youtube.com/watch?v=ozMbmBp3onE
o Historia de la Lógica
https://www.youtube.com/watch?v=tl_wRb3m6ME
o Piada Tunes - Portuga e a Lógica - ANIMATUNES
https://www.youtube.com/watch?v=ziy0py8hAUw
o Desafio de lógica dos cinco triângulos - Matchstick Puzzles
https://www.youtube.com/watch?v=M9oUKYXpBs4
VÍDEOS NA INTERNET
IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO
REFERÊNCIAS BIBLIOGRÁFICAS
FARRER, H. Algoritmos Estruturados. 3. ed. São Paulo: LTC, 1999. 260 p.
FORBELLONE, A. L. V.; EBERSPACHER, H. F. Lógica de Programação: a construçãode algoritmos e estruturas de dados. 3. ed. São Paulo: Prentice Hall Brasil, 2005.232 p.
03/05/2016 IFPR QUEDAS DO IGUAÇU - LÓGICA E LINGUAGEM DE PROGRAMAÇÃO - DANILO GIACOBO 38