430 likes | 584 Views
ENGENHARIA AMBIENTAL COMPUTAÇÃO APLICADA Aula 7. 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
E N D
ENGENHARIA AMBIENTALCOMPUTAÇÃO APLICADAAula 7 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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. 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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. 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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. 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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. 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
O que é algoritmo? • Características do algoritmo - cont. • É independente do sistema de computador FOROUZAN, Behrouz; MOSHARRAF, Cengage, 2011 pag. 192 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Relacionar o algoritmo a solução do problema • Exemplo: • AlgoritimoEncontraMaior - 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 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Relacionar o algoritmo a solução do problema 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Lógica de programação de computadores e algoritmos - Continuação • UML – UnifiedModelingLanguage • É 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. 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Lógica de programação de computadores e algoritmos - Continuação 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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. 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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. 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Lógica de programação de computadores e algoritmos - Continuação • Fluxograma padrão ANSI (American NationalStandandardsInstitute) Simbologia : • 1 -utilizado quando o fluxograma não cabe em uma única página. 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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 INÍCIO FIM 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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 Nome da atividade 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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 NÃO Pergunta ? SIM 1 1 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
O Fluxograma pode salvar sua vida ! 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Lógica de programação de computadores e algoritmos - Continuação • 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. 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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. 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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) 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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 caracateresalfanumericos • Lógico – Falso ou verdadeiro. • Continua...... 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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 numeros inteiros, faz uso do operador + e um laço (repetição) 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Portugol– continuação • Tipos de algoritmos básicos -Soma Forouzan 2011, pag.200 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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) 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
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.; 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Portugol– continuação Forouzan 2011, pag.201 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Portugol– continuação • Tipos de algoritmos básicos –Menor e Maior • Esse tipo de algoritmo podeser usado tanto paraencontrar o menor como omaior 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. 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Portugol– continuação • 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 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Portugol– continuação • 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. 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Portugol– continuação • Tipos de algoritmos básicos – Ordenação • Seleção 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Portugol– continuação • 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 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Portugol– continuação 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Portugol– continuação • 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. 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Portugol– continuação • Tipos de algoritmos básicos – Ordenação • Método Bolha – cont. 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Portugol– continuação • 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 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Portugol– continuação • 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. 18/02/2013 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com
Bibliografia 02/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com