Aula 5 Lógica de Programação Germano Marcos

Slides:



Advertisements
Apresentações semelhantes
Algoritmo e Programação
Advertisements

Introdução a Algoritmos
Data: 10 a 12 de fevereiro de 2009 e
Construção de Aplicativos Computacionais METEOROLOGIA
Marco Antonio Montebello Júnior
Desenvolvendo Algoritmos
INTRODUÇÃO – LOGICA E ALGORITMOS
Programação para Geociências
Paradigmas de Linguagens Conceitos Básicos
ALGORÍTMOS E ESTRUTURA DE DADOS SLIDE - 2
Introdução a Programação Renata Freire
Introdução à Programação
Lógica de Programação Módulo II
Introdução à Lógica de Programação (cont.)
INDICADORES E OBJETIVOS
INDICADORES DE PROCESSO E DE RESULTADO
Estruturas de Controle
Universidade Federal do Espírito Santo
Resolução de Problemas
Programação e Sistemas de Informação
Lógica de Programação.
INTRODUÇÃO À PROGRAMAÇÃO
Algoritmos Prof. Kelly E. Medeiros.
PRC Bruno Correa.
Formas de Representação de Algoritmos
Introdução a Programação
Processamento da Informação BC-05045
Lógica de Programação Introdução.
Aula 5 Lógica de Programação Germano Marcos
Introdução à Programação
Capítulo 3 Estruturas de Controle
Introdução Capítulo 1 Lógica de Programação
CEPMAT Curso Técnico em Informática
INTRODUÇÃO – LOGICA E ALGORITMOS
Estrutura de dados, pseudocódigo
Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC
ENGENHARIA DE AUTOMAÇÃO INDUSTRIAL
Algoritmos e Programação de Computadores
Prof: Luiz Carlos Zancanella :: INE / UFSC-SC 1 INE 5201 – Aula 002 Algoritmo Um conjunto de ações, com propriedades especiais e específicas e com algumas.
TÉCNICAS DE PROGRAMAÇÃO
Android Aula 01 Introdução ao Java Humberto Moura
Desenvolvimento Web Lógica de Programação
2. Lógica de Programação Definição de Lógica Definição de Algoritmo
ALGORITMOS Intensivo Janeiro e Fevereiro de 2011
CH: 60h Créditos: 3 Prof Me. Tiago Araujo
Introdução a Algoritmos
Algoritmos Fabrício Costa Santana
Fábio de Oliveira Borges
Igor Steinmacher, MSc. O maravilhoso mundo da Lógica de Programação.
Programação de PIC em C Exposição das funções básicas para
Algoritmo e Programação
Linguagens de Programação
Programação Computacional Aula 5: Algoritmos
Algoritmos e Programação
Linguagem Técnica de Programação
Algoritmos e Programação I
Introdução à lógica de programação
Exercícios Faça um algoritmos para trocar uma lampada queimada.
Algoritmo É uma descrição seqüencial ordenada dos passos que devem ser executados de forma lógica e clara, com a finalidade de facilitar a resolução de.
Linguagens de Programação
Curso Engenharia Química Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores.
Disciplina: Lógica de Programação
Introdução à Lógica de Programação (2)
Introdução a Programação Aula 01 Jackson Eduardo
Linguagem de Programação Prof. Fabricio Roulin Bittencout
Curso: Técnico Integrado em Informática Disciplina : Fundamentos de Lógica e Algoritmo INTRODUÇÃO A ALGORITMO Profª. Katiuscia Lopes dos Santos.
Algoritmos – Conceitos Iniciais
Lógica de programação Introdução à lógica de programação
Lógica de Programação Aula 06 Prof. Marcelo Marcony.
Transcrição da apresentação:

Aula 5 Lógica de Programação Germano Marcos Email: germano_07@hotmail.com

Lógica Lógica é uma parte da filosofia que estuda o fundamento, a estrutura e as expressões humanas do conhecimento. Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo.

Exemplos de ordenação do raciocínio: Lógica Exemplos de ordenação do raciocínio: Todo mamífero é um animal. Todo homem é mamífero. Portanto, todo homem é um animal. Pernambuco é um estado do Brasil Quem nasce em Pernambuco é pernambucano Portanto, todos os pernambucanos são brasileiros.

Vamos pensar em novos exemplos: Lógica Vamos pensar em novos exemplos: ? ?? ??? ????? ?????? ????????? ????????????

Lógica Todo mamífero é um animal. premissa Todo homem é mamífero. premissa Portanto, todo homem é um animal. conclusão SILOGISMO Argumento composto por duas premissas e uma conclusão Estabelece uma relação (válida ou não) São estudos do Cálculo Sentencial ou Lógica Proposicional

Silogismo Silogismo Válido Silogismo Inválido Ex: Pernambuco é um estado do Brasil Tiago reside em Pernambuco Logo, Tiago reside no Brasil Silogismo Inválido Existem biscoitos feitos de água e sal. O mar é feito de água e sal. Logo, o mar é um biscoitão.

Lógica de Programação Um pensamento pode ser representado em vários idiomas, embora sempre expresse a mesma idéia, o mesmo raciocínio. A idéia é concebida. Em seguida racionalizada, ordenada, e formalizada através da representação em uma certa linguagem de programação, como C, Java, PHP, Ruby...

Lógica de Programação Entretanto, cada linguagem de programação, assim como os idiomas da linguagem natural (linguagem falada e escrita, Português, Inglês, Espanho, Francês), tem suas especificidades. Para que possamos representar formalmente um raciocínio, sem nos preocuparmos com um linguagem de programação específica, usamos os ALGORITMOS.

Algoritmo O que é um Algoritmo ? é formalmente uma seqüência finita de passos que levam a execução de uma tarefa. Podemos pensar em algoritmo como uma receita, uma seqüência de instruções que dão cabo de uma meta específica. Estas tarefas não podem ser redundantes nem subjetivas na sua definição, devem ser claras e precisas. É um conjunto de passos, sequênciais, pré definidos e não ambíguos.

Algoritmo E como precisamos detalhar essa sequência de ações/passos, então é necessário pensar com ordem. Quer dizer: usar a Lógica!

Algoritmo No dia a dia usamos algoritmos, mas os conhecemos como receitas. Ao fazer um bolo precisamos seguir uma receita. Exercício: Vamos pensar numa receita de bolo ou para tomar um banho.

Resposta: Algoritmo 1 Situação Problema => Fazer um Bolo Dados de entrada => ingredientes (ovos, trigo,açúcar, fermento etc.) Processamento: Unte tabuleiro com manteiga; Misture fermento,trigo,ovos,leite; Mexa a massa; Coloque a massa no tabuleiro; Ligue o forno; Coloque tabuleiro no forno; Aguarde até o bolo assar; Desligue o forno; Tire o bolo do forno; Saida de dados => Bolo Pronto S O L U Ç Ã

Resposta: Algoritmo 2 Situação Problema => Tomar Banho; Dados de entrada => Pessoa suja; Processamento: Tirar a roupa; Ir para debaixo do chuveiro; Abrir o registro; Ensaboar-se; Passar shampoo nos cabelos; Enxaguar todo o corpo; Fechar o registro; Dados de saída => Pessoa Limpa: S O L U Ç Ã

Algoritmo Observação: SIM Computador Português Inglês Pseudocódigos Existem algumas diferenças entre o nosso algoritmo e aquele utilizado pelo computador ? SIM Nosso Computador Português Inglês Pseudocódigos Linhas de Códigos reais e robustas

Algoritmo Exemplo Clássico: Algoritmo para a troca de uma lâmpada utilizando o português coloquial. Embora essas atividades pareçam óbvias, normalmente as realizamos inconscientemente para alcançar os nossos objetivos.

Algoritmo da Lâmpada V. 1 Pegar uma escada Pegar uma lâmpada nova Posicionar a escada abaixo da lâmpada a ser trocada Subir na escada Retirar a lâmpada velha Colocar a lâmpada nova

Algoritmo da Lâmpada A sequenciação: É uma forma de reger o fluxo das ações a serem executadas; A ordem é importante; No exemplo da troca da lâmpada a sequenciação é linear;

Algoritmo da Lâmpada E se a lâmpada não estiver queimada? De acordo com o algoritmo que desenvolvemos a troca seria feita independentemente de a lâmpada estar ou não queimada! Essa possibilidade não foi prevista. Podemos verificar se a lâmpada acende antes de buscar a escada e a lâmpada.

Algoritmo da Lâmpada Para solucionar a possibilidade de a lâmpada não estar queimada podemos refinar um pouco mais o nosso algoritmo anterior. Como? Efetuando um teste. Vamos lá!

Algoritmo da Lâmpada V. 2 Acionar o interruptor; Se a lâmpada não acender, então: Pegar uma escada; Pegar uma lâmpada nova; Posicionar a escada abaixo da lâmpada a ser trocada; Subir na escada; Retirar a lâmpada velha; Colocar a lâmpada nova;

Algoritmo da Lâmpada Note que agora estabelecemos uma condição ao nosso algoritmo: Se essa condição for verdadeira (???) efetuaremos a troca da lâmpada, seguindo os próximos passos.

Algoritmo da Lâmpada Se a condição for falsa (???) então os passos relativos à troca da lâmpada não serão executados. Quer dizer, a lâmpada, que está funcionando, não será trocada.

Algoritmo da Lâmpada Essa condição de teste que estabelecemos é o chamado Teste de Seleção. Dada uma condição, então as ações a serem executadas dependerão da avaliação dessa condição (verdadeira ou falsa).

Atividades Elaborar um Silogismo Válido e um Inválido; Elaborar um Algoritmo para fazer um bolo ou para tomar um banho; Elaborar um Algoritmo para trocar um pneu furado.

Lógica de Programação Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo. Por que estamos estudando Lógica de Programação? R: para aprendermos a construir algoritmos coerentes e válidos.

Algoritmo da Lâmpada V. 2 Acionar o interruptor; Se a lâmpada não acender, então: Pegar uma escada; Pegar uma lâmpada nova; Posicionar a escada abaixo da lâmpada a ser trocada; Subir na escada; Retirar a lâmpada velha; Colocar a lâmpada nova;

Algoritmo da Lâmpada O algoritmo v.2 parece ser adequado, mas, e no caso de a lâmpada nova estiver defeituosa? Podemos melhorar o nosso algoritmo ao ponto de ter que trocar a lâmpada, quantas vezes for necessário, até que funcione. Refinando...

Algoritmo da Lâmpada V. 3 Retirar a lâmpada queimada; Acionar o interruptor; Se a lâmpada não acender, então: Pegar uma escada; Pegar uma lâmpada nova; Posicionar a escada abaixo da lâmpada a ser trocada; Subir na escada; Retirar a lâmpada velha; Colocar a lâmpada nova; Retirar a lâmpada queimada; Colocar outra lâmpada nova; . . . até quando??? V. 3

Algoritmo da Lâmpada Notemos que o algoritmo v.3 não especifica até quando o teste da lâmpada será feito. Refinando ainda mais o algoritmo v.3, porém, agora teremos que lidar com o problema descrito logo a cima.

Algoritmo da Lâmpada O trecho: Enquanto a lâmpada não acender, faça: Retirar a lâmpada queimada; Colocar uma lâmpada nova; Condição de Parada

Algoritmo da Lâmpada v.4 Acionar o interruptor; Se a lâmpada não acender, então: Pegar uma escada; Pegar uma lâmpada nova; Posicionar a escada abaixo da lâmpada a ser trocada; Subir na escada; Retirar a lâmpada velha; Colocar a lâmpada nova; Enquanto a lâmpada não acender, faça: Retirar a lâmpada queimada; Colocar uma lâmpada nova;

Algoritmo da Lâmpada Notemos que, até o momento, definimos um algoritmo para a troca de apenas uma lâmpada (na verdade, o conjunto: lâmpada, soquete, interruptor), testando esse conjunto e trocando tantas lâmpadas sejam necessárias até que o conjunto funcione. E se precisássemos trocar várias lâmpadas?? Por exemplo 10...

Algoritmo da Lâmpada V.5 Ir até o interruptor do primeiro soquete; Enquanto a quantidade de soquetes testados for igual dez, faça: Acionar o interruptor Se a lâmpada não acender, então Pegar uma escada Pegar uma lâmpada nova Posicionar a escada abaixo da lâmpada a ser trocada Subir na escada Retirar a lâmpada velha 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;

Algoritmo da Lâmpada V.5 Estrutura de repetição Ir até o interruptor do primeiro soquete; Enquando a quantidade de soquetes testados for igual a dez, faça: Acionar o interruptor Teste de seleção Se a lâmpada não acender, então Pegar uma escada Pegar uma lâmpada nova Posicionar a escada abaixo da lâmpada a ser trocada Subir na escada Retirar a lâmpada velha Colocar a lâmpada nova Enquanto a lâmpada não acender, faça: Estrutura de parada Retirar a lâmpada queimada; Colocar uma lâmpada nova; Ir até o interruptor do próximo soquete; Estrutura de repetição

Algoritmos Qualquer pessoa pode resolver o problema de trocar a lâmpada do seu modo.

Algoritmos Entretanto, o computador tradicional não tem conhecimento prévio nem adquire experiências, por isso devemos determinar detalhadamente as ações que desejamos que ele execute. Como?

Algoritmos Prevendo possíveis obstáculos e a forma de transpô-los = descrever uma sequência finita de ações que garantam a solução do problema. Algoritmos

Formas de Representação Algoritmos Formas de Representação Textualmente: Mais fácil de entender, pois usa a nossa linguagem natural; Passível de erros, por conta de que as vezes não usamos palavras adequadas Menos trabalhoso Graficamente: Mais fiel ao raciocínio original Substitui algumas palavras por desenhos Mais difícil de enteder (??) Mais trabalhoso

Algoritmos Gráficos Fluxograma Tradicional Estruturas de Seleção e de Repetição Início Ação Diagrama de Chapin Ação Bloco de ações 1a Ação 2a Ação ... n-ésima Ação V F 1a Ação 2a Ação ... n-ésima Ação

Algoritmos Gráficos Fluxograma Início Leia B1, B2 Calcule M (B1 + B2) / 2 Média >= 6 verdadeira Falsa Aluno aprovado Aluno reprovado Fim

Algoritmos Gráficos Diagrama de Chapin

Exercício Produzir um algoritmo (contendo um teste de seleção) textual. Este exercício pode ser feito individualmente ou em dupla. ATENÇÃO!! Não façam algoritmos pequenos; Entregar ainda nesta aula (assim q for solicitado).

Formas de Representação Algoritmos Formas de Representação Textualmente: Mais fácil de entender, pois usa a nossa linguagem natural; Passível de erros, por conta de que as vezes não usamos palavras adequadas Menos trabalhoso Graficamente: Mais fiel ao raciocínio original Substitui algumas palavras por desenhos Mais difícil de enteder (??) Mais trabalhoso

Algoritmos Gráficos Fluxograma Tradicional Estruturas de Seleção e de Repetição Início Ação Diagrama de Chapin Ação Bloco de ações 1a Ação 2a Ação ... n-ésima Ação V F 1a Ação 2a Ação ... n-ésima Ação

Algoritmos Gráficos Fluxograma Início Leia B1, B2 Calcule M (B1 + B2) / 2 Média >= 6 verdadeira Falsa Aluno aprovado Aluno reprovado Fim

Algoritmos Gráficos Diagrama de Chapin

Exercício Implementar o algoritmo feito no exercício anterior e transforma-lo em um fluxograma. Este exercício pode ser feito individualmente ou em dupla. ATENÇÃO!! Não façam algoritmos pequenos; Entregar ainda nesta aula (assim q for solicitado).

Respondendo o exercício

Algoritmo para escovar os dentes 1. início; 2. pegar a escova; 3. pegar a pasta; 4. verificar se tem água; 5. - - - - se tiver água, faça; 6. - - - - - - - - - - - tirar a tampa da pasta; 7. - - - - - - - - - - - colocar a pasta na escova; 8. - - - - - - - - - - - fechar a pasta; 9. - - - - - - - - - - - escovar os dentes; 10. - - - - - - - - - - - abrir a torneira; 11. - - - - - - - - - - - enxaguar a boca; 12. - - - - - - - - - - - lavar a escova; 13. - - - - - - - - - - - fechar a torneira; 14. - - - - Fim se; 15. guardar a escova; 16. guardar a pasta; 17. Fim.

Finalizando nosso silogismo Todo ser humano é um ser vivo Você é um ser humano Logo você é um ser vivo Premissa Premissa Conclusão O r g a n i z ç ã o Termos Classificação Válido Termo específico = Você ou Termo médio = Ser humano Inválido Termo mais abrangente = Ser vivo

Finalizando nosso algoritmo 1. início; 2. pegar a escova; 3. pegar a pasta; 4. verificar se tem água; 5. - - - - se tiver água, faça; 6. - - - - - - - - - - - tirar a tampa da pasta; 7. - - - - - - - - - - - colocar a pasta na escova; 8. - - - - - - - - - - - fechar a pasta; 9. - - - - - - - - - - - escovar os dentes; 10. - - - - - - - - - - - abrir a torneira; 11. - - - - - - - - - - - enxaguar a boca; 12. - - - - - - - - - - - lavar a escova; 13. - - - - - - - - - - - fechar a torneira; 14. - - - - Fim se; 15. guardar a escova; 16. guardar a pasta; 17. Fim. Bloco VERDADE