ENGENHARIA DE CONTROLE E AUTOMAÇÃO COMPUTAÇÃO PARA ENGENHARIA Aula /02/2013 Professor Leomir J. Borba- –
Agenda Lógica de programação de computadores e algoritmos. O que é lógica? O que é algoritmo? Relacionar o algoritmo a solução do problema UML Fluxograma Pseudocódigo para representar algoritmos Construções - Seqüência, Seleção e Repetição 2 18/02/2013 Professor Leomir J. Borba- –
O que é lógica? Ciência que estuda as leis do raciocinio Nos ajuda na correção / Validação do Pensamento. Encadeamento/Ordem de idéias Arte de bem pensar. 3 18/02/2013 Professor Leomir J. Borba- –
O que é lógica? Ciência que estuda as leis do raciocínio Nos ajuda em : Correção / Validação do Pensamento. Encadeamento/Ordem de idéias Arte de bem pensar. Seqüência Lógica Passos executados até atingir objetivo ou solução de um problema. 4 18/02/2013 Professor Leomir J. Borba- –
O que é lógica? Sequência Lógica – cont. Ex. Chupar uma bala Pegar a bala Retirar o papel Chupar a Bala Jogar o Papel no Lixo 5 18/02/2013 Professor Leomir J. Borba- –
O que é algoritmo? Conceito Conjunto finito de regras, bem definidas, para a solução de um problema em um tempo e numero de passos finitos. Ou Método passo a passo para resolver um problema ou realizar uma tarefa. 6 18/02/2013 Professor Leomir J. Borba- –
O que é algoritmo? Características do algoritmo Finito : Termina ao fim de um numero finito de passos. Definido : Cada passo é preciso. Entrada : Pode haver nenhuma ou varias entradas. Saídas : Podem haver uma ou mais. Eficácia :Todas operações executadas devem ser básicas. 7 18/02/2013 Professor Leomir J. Borba- –
O que é algoritmo? Características do algoritmo - cont. É independente do sistema de computador FOROUZAN, Behrouz; MOSHARRAF, Cengage, 2011 pag /02/2013 Professor Leomir J. Borba- –
Relacionar o algoritmo a solução do problema Exemplo: Algoritimo EncontraMaior - Encontrar o maior numero inteiro em uma lista de números inteiros positivos quaisquer (ex. : 12, 8, 13, 9, 11) Considerações Deve ser genérico para funcionar com qualquer quantidade de números Não pode ser realizado em uma etapa (obvio!) Abordagem deve ser intuitiva. Usar pequena quantidade números para provar, depois amplia para qualquer quantidade de numeros 9 18/02/2013 Professor Leomir J. Borba- –
Relacionar o algoritmo a solução do problema 10 18/02/2013 Professor Leomir J. Borba- –
Lógica de programação de computadores e algoritmos - Continuação UML – Unified Modeling Language É uma notação que pode gerar uma representação pictórica de um algoritmo. Ela oculta todos os detalhes de uma algoritmo, tentando apresenta-lo como uma grande figura demonstrando como o algoritmo flui do inicio ao fim. Veremos apenas a representação mais simples das três construções básicas para criar-se um algoritmo usando UML visto que essa notação e vasta e rica em detalhes e o uso dos mesmos não é nosso foco /02/2013 Professor Leomir J. Borba- –
Lógica de programação de computadores e algoritmos - Continuação 12 18/02/2013 Professor Leomir J. Borba- –
Lógica de programação de computadores e algoritmos - Continuação Fluxograma – Ferramentas de representação gráfica do processo, possui vários tipos e grau de complexidade, de acordo com o objetivo a que se destinam. Demonstram a sequencia operacional do desenvolvimento de um processo, o trabalho que esta sendo realizado e como a informação flui entre os participantes do processo /02/2013 Professor Leomir J. Borba- –
Lógica de programação de computadores e algoritmos - Continuação O fluxograma possibilita : Definição e documentação de processos Preparação para aperfeiçoamento de processos Identificação de atividades criticas de processos Conhecimento da sequencia e encadeamento das atividades de um processo dando uma visão do fluxo do processo, provendo esclarecimentos /02/2013 Professor Leomir J. Borba- –
Lógica de programação de computadores e algoritmos - Continuação Fluxograma padrão ANSI (American National Standandards Institute) Simbologia : 1 -utilizado quando o fluxograma não cabe em uma única página /02/2013 Professor Leomir J. Borba- –
Lógica de programação de computadores e algoritmos - Continuação Fluxograma padrão ANSI – Considerações para criação : Deve começar e terminar com uso de terminais : Deve ser construído sempre de cima para baixo e da esquerda para a direita 16 18/02/2013 Professor Leomir J. Borba- – INÍCIO FIM
Lógica de programação de computadores e algoritmos - Continuação Fluxograma padrão ANSI – Considerações para criação – cont. : Operação/ Atividade Nome da atividade = verbo + objeto Exemplos Montar Computador Recebe pedido cliente Paga divida 17 18/02/2013 Professor Leomir J. Borba- – Nome da atividade
Lógica de programação de computadores e algoritmos - Continuação Fluxograma padrão ANSI – Considerações para criação – cont. : Decisão Conector de situação : Usar de uma pagina para outra Quando não couber 18 18/02/2013 Professor Leomir J. Borba- – Pergunta ? NÃO SIM 1 1
O Fluxograma pode salvar sua vida ! 19 18/02/2013 Professor Leomir J. Borba- –
Portugol Para aprendermos a programar um passo necessário é aprendermos o raciocínio da programação Uma linguagem de programação tem intenção de servir de veiculo para expressão de raciocínio algorítmico e execução automática de um algoritmo /02/2013 Professor Leomir J. Borba- – Lógica de programação de computadores e algoritmos - Continuação
Portugol – cont. Para fazermos a transição do algoritmo para o programa, uma das ferramentas usada é o portugol, uma pseudolinguagem de programação (simbiose do português com o ALGOL e PASCAL - Guimaraes Lages, 1994) O objetivo é obter uma notação formal para ser usada na definição, criação e documentação de um programa /02/2013 Professor Leomir J. Borba- – Lógica de programação de computadores e algoritmos - Continuação
Portugol – cont. A ideia é permitir que um conjunto básico de primitivas seja possível ao projetista pensar no problema e não na maquina que vai executar o algoritmo. Toda linguagem obedece a uma sintaxe (forma) e semântica (conteudo) 22 18/02/2013 Professor Leomir J. Borba- – Lógica de programação de computadores e algoritmos - Continuação
Portugol – cont. Identificador – A, B1, BCD3, A4, contador, etc.; composto por letras e números Declaração de variáveis – tipos Básicos Inteiros – Qualquer numero inteiro (-5,0,235) Real - qualquer numero real, negativo ou positivo Caracter – qualquer conjunto de caracateres alfanumericos Lógico – Falso ou verdadeiro. Continua /02/2013 Professor Leomir J. Borba- – Lógica de programação de computadores e algoritmos - Continuação
Pseudocódigo para representar algoritmos – Portugol – continuação Sabemos que os algoritmos podem utilizar 3 estruturas básicas para resolver qualquer tipo de problema. Sequência Decisão Repetição 24 18/02/2013 Professor Leomir J. Borba- –
Portugol – continuação Quando utilizar cada uma das estruturas? Sequência - Para problemas simples com execução de ações onde não é necessária nenhuma tomada decisão ou ação repetitiva. Ex. vestir as calças: Pegar calça Colocar primeira perna Colocar segunda perna Suspender a calça Fechar o zíper Fechar o botão 25 18/02/2013 Professor Leomir J. Borba- –
Portugol – continuação Quando utilizar cada uma das estruturas? Decisão - Para problemas onde a estrutura de sequência não é suficiente para resolver o problema. Ex. Qual veículo usar para ir ao trabalho? Verificar o clima Se estiver fazendo sol Utilizar moto Senao Utilizar carro 26 18/02/2013 Professor Leomir J. Borba- –
Portugol – continuação Quando utilizar cada uma das estruturas? Repetição - Para problemas onde uma ou mais ações se repetirão para solucionar o problema. Ex. Contar moedas do cofrinho 27 18/02/2013 Professor Leomir J. Borba- – Abrir cofrinho vTotal <- 0 Faca enquanto houver moedas vValor <- valor moeda atual vTotal <- vTotal + vValor proxima moeda Abrir cofrinho vTotal <- 0 Faca vValor <- valor moeda atual vTotal <- vTotal +vValor proxima moeda enquanto houver moedas
Portugol – continuação Tipos de algoritmos básicos Alguns algoritmos são comumente usados e por isso indicados para diversas soluções, discutiremos alguns deles. Soma – Usado para adicionar muitos números inteiros, faz uso do operador + e um laço (repetição) 28 18/02/2013 Professor Leomir J. Borba- –
Portugol – continuação Tipos de algoritmos básicos -Soma Forouzan 2011, pag /02/2013 Professor Leomir J. Borba- –
Portugol – continuação Tipos de algoritmos básicos –Soma Tem três partes lógicas: Inicialização da soma no inicio O Laço que em cada iteração, adiciona um novo numero inteiro a soma Retorno do resultado depois de sair do Laço (repetição) 30 18/02/2013 Professor Leomir J. Borba- –
Portugol – continuação Tipos de algoritmos básicos – Produto Utilizado para encontrar o produto de uma lista de números inteiros. Faz uso do operador de multiplicação em um laço (repetição) Tem três partes lógicas : Inicialização Laço, em cada iteração multiplica um novo numero inteiro pelo produto Retorno do resultado após sair do laço.; 31 18/02/2013 Professor Leomir J. Borba- –
Portugol – continuação Forouzan 2011, pag /02/2013 Professor Leomir J. Borba- –
Portugol – continuação 33 18/02/2013 Professor Leomir J. Borba- – Tipos de algoritmos básicos –Menor e Maior Esse tipo de algoritmo pode ser usado tanto para encontrar o menor como o maior numero de uma lista, Utilizando um laço (repetição) e duas estruturas de decisão. A diferença entre eles é mínima, mudando-se a pergunta e o nome da variavel.
Portugol – continuação 34 18/02/2013 Professor Leomir J. Borba- – Tipos de algoritmos básicos – Ordenação Uma das aplicações mais comuns, o processo pelo qual dados são arranjados de acordo com seus valores. Veremos três tipos mais eficientes e que são utilizados para algoritmos mais avançados : Seleção Método Bolha Inserção
Portugol – continuação 35 18/02/2013 Professor Leomir J. Borba- – Tipos de algoritmos básicos – Ordenação Seleção Lista a ser ordenada é dividida em duas sublistas – ordenada e não ordenada. (limite imaginario) Encontra-se o menor elemento da sublista não ordenada e troca-se pelo elemento no início da própria sublista não ordenada. O limite imaginário entre as sublistas move-se um elemento a frente Depois de cada seleção e troca concluímos uma etapa da ordenação.
Portugol – continuação 36 18/02/2013 Professor Leomir J. Borba- – Tipos de algoritmos básicos – Ordenação Seleção
Portugol – continuação 37 18/02/2013 Professor Leomir J. Borba- – Tipos de algoritmos básicos – Ordenação Algoritmo de ordenação por seleção Usa dois laços um dentro do outro O laço mais externo é iterado para cada etapa O Laço mais interno encontra o menor elemento da lista O exemplo a seguir não mostra o laço mais interno, a primeira instrução no laço representa o laço mais interno
Portugol – continuação 38 18/02/2013 Professor Leomir J. Borba- –
Portugol – continuação 39 18/02/2013 Professor Leomir J. Borba- – Tipos de algoritmos básicos – Ordenação Método Bolha Tambem dividida em duas sublistas – ordenada e não ordenada O menor elemento é “borbulhado” (movido) da lista não ordenada para ordenada a cada posição.
Portugol – continuação 40 18/02/2013 Professor Leomir J. Borba- – Tipos de algoritmos básicos – Ordenação Método Bolha – cont.
Portugol – continuação 41 18/02/2013 Professor Leomir J. Borba- – Tipos de algoritmos básicos – Ordenação Método Inserção É uma das técnicas mais comuns, usado por jogadores de cartas. Cada carta pega é inserida no local adequado. Também divide lista em ordenada e não ordenada Cada iteração move item da lista não ordenada para ordenada e inserido no local apropriado
Portugol – continuação 42 18/02/2013 Professor Leomir J. Borba- – Tipos de algoritmos básicos – Ordenação Exercícios Para entrega nesta aula : Escreva o algoritmo de ordenação em portugol e UML de uma lista de números inteiros utilizando os métodos Seleção bolha Inserção Para entrega na próxima aula Sustentabilidade: Redução do consumo de energias, diminuição da emissão de gases, reciclagem e descarte devido de equipamentos eletrônicos.
Bibliografia 02/08/2011 Professor Leomir J. Borba- – 43 BIBLIOGRAFIA BÁSICA 1 TANENBAUM, Andrew S. Redes de computadores. Rio de Janeiro: Campus, MACHADO, Francis Berenger. Arquitetura de sistemas operacionais. Rio de Janeiro: Livros Técnicos e Científicos, ed. 3 SOUZA, Marco Antônio de Furlan. Algoritmos e lógica de programação. 2ª ed. São Paulo, Cengage Learning, BIBLIOGRIA COMPLEMENTAR 1 CANTU, Marco. Dominando o Delphi 5 "a Bíblia". São Paulo: Makron Books, LOURENÇO, Antônio Carlos de. Circuitos digitais. São Paulo: Érica, NORTON, P., Introdução à Informática, 5ª edição, São Paulo, Printice Hall, MANZANO, José Augusto. Algoritmos. São Paulo: Érica, COMER, Douglas E. Interligação em rede com TCP/IP: projeto, implementação e detalhes internos. Tradução de Ana Maria Netto GUZ. 3. ed. Rio de Janeiro: Campus, v. 2.