ENGENHARIA AMBIENTAL COMPUTAÇÃO APLICADA Aula 7 1 18/02/2013 Professor Leomir J. Borba-...
Transcript of ENGENHARIA AMBIENTAL COMPUTAÇÃO APLICADA Aula 7 1 18/02/2013 Professor Leomir J. Borba-...
1
ENGENHARIA AMBIENTAL
COMPUTAÇÃO APLICADA
Aula 7
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
2
AgendaLógica de programação de computadores e
algoritmos.O que é lógica?O que é algoritmo?Relacionar o algoritmo a solução do problemaUMLFluxogramaPseudocódigo para representar algoritmosConstruções - Seqüência, Seleção e Repetição
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
3
O que é lógica?Ciência que estuda as leis do raciocinioNos ajuda na correção / Validação do
Pensamento.Encadeamento/Ordem de idéiasArte de bem pensar.
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
4
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éiasArte 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- [email protected] –http://professorleomir.wordpress.com
5
O que é lógica?Sequência Lógica – cont.
Ex. Chupar uma balaPegar a balaRetirar o papelChupar a BalaJogar o Papel no Lixo
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
6
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.
OuMétodo passo a passo para resolver um problema
ou realizar uma tarefa.
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
7
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- [email protected] –http://professorleomir.wordpress.com
8
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- [email protected] –http://professorleomir.wordpress.com
9
Relacionar o algoritmo a solução do problemaExemplo:
Algoritimo EncontraMaior - Encontrar o maior numero inteiro em uma lista de números inteiros positivos quaisquer (ex. : 12, 8, 13, 9, 11)
ConsideraçõesDeve ser genérico para funcionar com qualquer
quantidade de númerosNã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 numeros18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
10
Relacionar o algoritmo a solução do problema
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
11
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.
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
12
Lógica de programação de computadores e algoritmos - Continuação
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
13
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- [email protected] –http://professorleomir.wordpress.com
14
Lógica de programação de computadores e algoritmos - Continuação
O fluxograma possibilita :Definição e documentação de processosPreparação para aperfeiçoamento de processosIdentificação de atividades criticas de processosConhecimento 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- [email protected] –http://professorleomir.wordpress.com
15
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.18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
16
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
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
INÍCIO FIM
17
Lógica de programação de computadores e algoritmos - Continuação
Fluxograma padrão ANSI – Considerações para criação – cont. :
Operação/ AtividadeNome da atividade = verbo + objeto
ExemplosMontar ComputadorRecebe pedido clientePaga divida
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Nome da atividade
18
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 outraQuando não couber
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Pergunta?
NÃO
SIM
11
19
O Fluxograma pode salvar sua vida !
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
20
PortugolPara 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- [email protected] –http://professorleomir.wordpress.com
Lógica de programação de computadores e algoritmos - Continuação
21
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- [email protected] –http://professorleomir.wordpress.com
Lógica de programação de computadores e algoritmos - Continuação
22
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- [email protected] –http://professorleomir.wordpress.com
Lógica de programação de computadores e algoritmos - Continuação
23
Portugol – cont.Identificador – A, B1, BCD3, A4, contador, etc.;
composto por letras e númerosDeclaração de variáveis – tipos Básicos
Inteiros – Qualquer numero inteiro (-5,0,235)Real - qualquer numero real, negativo ou positivoCaracter – qualquer conjunto de caracateres
alfanumericosLógico – Falso ou verdadeiro.Continua......
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Lógica de programação de computadores e algoritmos - Continuação
24
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ênciaDecisãoRepetição
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
25
Portugol – continuaçãoQuando 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çaColocar primeira pernaColocar segunda pernaSuspender a calçaFechar o zíperFechar o botão
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
26
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 climaSe estiver fazendo sol
Utilizar motoSenao Utilizar carro
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
27
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- [email protected] –http://professorleomir.wordpress.com
Abrir cofrinhovTotal <- 0Faca enquanto houver moedas vValor <- valor moeda atual vTotal <- vTotal + vValor proxima moeda
Abrir cofrinhovTotal <- 0Faca vValor <- valor moeda atual vTotal <- vTotal +vValor proxima moeda enquanto houver moedas
28
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- [email protected] –http://professorleomir.wordpress.com
29
Portugol – continuação
Tipos de algoritmos básicos -Soma
Forouzan 2011, pag.20018/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
30
Portugol – continuação
Tipos de algoritmos básicos –SomaTem três partes lógicas:
Inicialização da soma no inicioO Laço que em cada iteração, adiciona um novo
numero inteiro a somaRetorno do resultado depois de sair do Laço
(repetição)
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
31
Portugol – continuação
Tipos de algoritmos básicos – ProdutoUtilizado 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çãoLaço, em cada iteração multiplica um novo numero
inteiro pelo produtoRetorno do resultado após sair do laço.;18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
32
Portugol – continuação
Forouzan 2011, pag.201
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
33
Portugol – continuação
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Tipos de algoritmos básicos –Menor e Maior Esse tipo de algoritmo pode
ser 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.
34
Portugol – continuação
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Tipos de algoritmos básicos – OrdenaçãoUma 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çãoMétodo BolhaInserção
35
Portugol – continuação
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Tipos de algoritmos básicos – OrdenaçãoSeleçã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.
36
Portugol – continuação
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Tipos de algoritmos básicos – OrdenaçãoSeleção
37
Portugol – continuação
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Tipos de algoritmos básicos – OrdenaçãoAlgoritmo de ordenação por seleção
Usa dois laços um dentro do outroO laço mais externo é iterado para cada etapaO Laço mais interno encontra o menor elemento da
listaO exemplo a seguir não mostra o laço mais interno, a
primeira instrução no laço representa o laço mais interno
38
Portugol – continuação
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
39
Portugol – continuação
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Tipos de algoritmos básicos – OrdenaçãoMétodo BolhaTambem dividida em duas sublistas – ordenada e
não ordenadaO menor elemento é “borbulhado” (movido) da
lista não ordenada para ordenada a cada posição.
40
Portugol – continuação
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Tipos de algoritmos básicos – OrdenaçãoMétodo Bolha – cont.
41
Portugol – continuação
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Tipos de algoritmos básicos – OrdenaçãoMé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 ordenadaCada iteração move item da lista não ordenada
para ordenada e inserido no local apropriado
42
Portugol – continuação
18/02/2013 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Tipos de algoritmos básicos – OrdenaçãoExercíciosPara 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çãobolha Inserção
Para entrega na próxima aulaSustentabilidade: Redução do consumo de energias,
diminuição da emissão de gases, reciclagem e descarte devido de equipamentos eletrônicos.
43
Bibliografia
02/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
BIBLIOGRAFIA BÁSICA
1 MANZANO, José Augusto N. G. Estudo Dirigido de Algorítmos. São Paulo: Érica, 1999.
2 PEIXOTO, Mário César Pintaudi. Engenharia social e segurança da informação na gestão corporativa . Rio de Janeiro: Brasport, 2006.
3COMER, 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, 1999. v. 2.
BIBLIOGRAFIA COMPLEMENTAR
1 CANTU, Marco. Dominando o Delphi 5 "a Bíblia". São Paulo: Makron Books, 2000.
2 TANENBAUM, Andrew S. Redes de computadores. Rio de Janeiro : Campus, 1994.
3MACHADO, Francis Berenger. Arquitetura de sistemas operacionais. Rio de Janeiro : Livros Técnicos e Científicos, 2002. 3. ed.
4 LOURENÇO, Antonio Carlos de. Circuitos digitais. São Paulo : Érica, 2005
5NORTON, P., Introdução à Informática, 5ª edição, São Paulo, Printice Hall, 2004. 1997