Programação para Geociências

Slides:



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

Introdução a Algoritmos
Introdução à Programação
Construção de Aplicativos Computacionais METEOROLOGIA
Introdução a Programação
Marco Antonio Montebello Júnior
INTRODUÇÃO – LOGICA E ALGORITMOS
Raciocínio Lógico Exercícios
Introdução a Algoritmos Seqüenciais
CIC 107 Programação de Computadores I
Lógica de Programação Módulo II
Estruturas de Controle
UDESC - Prof. Juliano Maia adaptado por Alexandre Parra
Universidade Federal do Espírito Santo
ALGORITMO E ESTRUTURA DE DADOS
Introdução aos Algoritmos
Lógica de Programação Módulo II
Programação e Sistemas de Informação
Programação Básica de Computadores 1
Lógica de Programação.
INTRODUÇÃO À PROGRAMAÇÃO
Algoritmos Prof. Kelly E. Medeiros.
PRC Bruno Correa.
Processamento da Informação BC-05045
Buscas em Grafos Prof. André Renato 1º Semestre/2012
O Portal do Estudante de Computação
Lógica de Programação Introdução.
Aula 5 Lógica de Programação Germano Marcos
Introdução à Programação
Aula 5 Lógica de Programação Germano Marcos
Prof. Roberto Cristóvão
ALGORÍTMOS E PROGRAMAÇÃO Engenharia
Introdução Capítulo 1 Lógica de Programação
CEPMAT Curso Técnico em Informática
INTRODUÇÃO – LOGICA E ALGORITMOS
ENGENHARIA DE AUTOMAÇÃO INDUSTRIAL
Algoritmos e Programação de Computadores
LINGUAGENS DE PROGRAMAÇÃO PROF. DANIELA PIRES
Algoritmos e Programação I
Lógica de programação – Aula 1
Algoritmos e Programação de Computadores
Algoritmos 1º Semestre Materia: Informática Profº: Cristiano.
TÉCNICAS DE PROGRAMAÇÃO
ALGORITMOS Intensivo Janeiro e Fevereiro de 2011
CH: 60h Créditos: 3 Prof Me. Tiago Araujo
Computação Eletrônica
Algoritmo e Estrutura de Dados
Fábio de Oliveira Borges
Igor Steinmacher, MSc. O maravilhoso mundo da Lógica de Programação.
Construção de Algoritmos
Programação de PIC em C Exposição das funções básicas para
Torre de  Hanói.
ENGENHARIA DE CONTROLE E AUTOMAÇÃO COMPUTAÇÃO PARA ENGENHARIA Aula /02/2013 Professor Leomir J. Borba- –
Linguagens de Programação
Fundamentos de linguagens de programação
Intodução a Programação
Algoritmos e Programação
Algoritmos e Programação I
Prática de Ensino em Matemática II Aula 3
Exercícios Faça um algoritmos para trocar uma lampada queimada.
Linguagens de Programação
Disciplina: Lógica de Programação
Introdução à Lógica de Programação (2)
Introdução a Programação Aula 01 Jackson Eduardo
DESENVOLVIMENTO Prof: Marcelo West Disciplina: Lógica de Programação.
Linguagem de Programação Prof. Fabricio Roulin Bittencout
Algoritmos – Conceitos Iniciais
Lógica de Programação Aula 04 Prof. Marcelo Marcony.
Lógica de programação Introdução à lógica de programação
Introdução à Lógica Matemática
Transcrição da apresentação:

Programação para Geociências Aula 01 Lógica de Programação Brasília-DF - 1º Semestre/2011 Prof. Marcelo Peres Rocha marcelorocha@unb.br blog: my.opera.com/marcelorocha

O que é lógica? Podemos dizer que a lógica é a “arte do bem pensar”, que é “a ciência das formas de pensamento”. Visto que a forma mais complexa do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”, ou ainda, podemos dizer que a lógica tem em vista a “ordem da razão”. Exemplo: Todo mamífero é um animal. Todo cavalo é um mamífero. Portanto, todo cavalo é um animal.

Existe lógica no dia-a-dia? Sempre que pensamos, a lógica nos acompanha. Quando falamos ou escrevemos, estamos expressando nosso pensamento, logo precisamos usar a lógica nestas atividades. Podemos perceber a importância da lógica em nossa vida, não só na teoria, mas também na prática, já que, quando queremos pensar, falar, escrever ou agir, precisamos colocar “ordem no pensamento”. Exemplo: A gaveta está fechada. A caneta está dentro da gaveta. Precisamos primeiro abrir a gaveta para depois pegar a caneta.

Mas e a Lógica de Programação? O raciocínio é algo abstrato. Os seres humanos têm a capacidade de expressá-lo através da palavra falada ou escrita, que por sua vez se baseia em um determinado idioma, que segue uma série de padrões (gramática). Um mesmo raciocínio pode ser expresso em qualquer um dos inúmeros idiomas existentes, mas continuará representando o mesmo raciocínio, usando apenas uma outra convenção. Algo similar ocorre com a Lógica de Programação, que pode ser concebida e pode ser representada em qualquer uma das inúmeras linguagens de programação existentes. Como cada uma das diversas linguagens tem suas particularidades, é interessante, para representar mais fielmente o raciocínio lógico, o uso dos chamados Algoritmos.

O que é um Algoritmo? Um algoritmo pode ser definido como a seqüência de passos necessários para se atingir um objetivo bem definido. Na medida em que precisamos especificar uma seqüência de passos, precisamos utilizar ordem, ou seja, “pensar em ordem”, portanto precisamos utilizar a Lógica. Apesar do nome pouco comum, os algoritmos são comuns em nosso cotidiano, como por exemplo, uma receita de bolo. Quando elaboramos um algoritmo, devemos especificar ações claras e precisas, que a partir de um estado inicial, após um período de tempo finito, produzem um estado final previsível e bem definido.

Quando elaboramos um algoritmo, devemos especificar ações claras e precisas, que a partir de um estado inicial, após um período de tempo finito, produzem um estado final previsível e bem definido.

Exemplos de Algoritmo Podemos escrever um algoritmo, utilizando português coloquial que descreva os passos para a solução de um determinado problema, como por exemplo, trocar uma lâmpada. Algoritmo 1.1: - 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. - A seqüência acima pode ser seguida por qualquer pessoa para se alcançar o objetivo deste algoritmo: Trocar a lâmpada. Esta seqüência é linear e de cima para baixo e da direita para esquerda, considerando que se trata de um texto.

E no caso da lâmpada não estar queimada? A execução das ações conduziria a uma troca, independente de a lâmpada estar ou não queimada, pois não foi prevista esta possibilidade na execução. Um novo algoritmo poderia ser construído efetuando um teste sobre a lâmpada. Algoritmo 1.2: - 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.

No algoritmo anterior foi colocado um teste condicional No algoritmo anterior foi colocado um teste condicional. Este algoritmo está certo, visto que atinge seu objetivo, mas ele pode ser melhorado. Algoritmo 1.3: - 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; Subir na escada; Retirar a lâmpada velha; Colocar a lâmpada nova.

Algoritmo 1.4: - 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; ... Até quando??? O algoritmo será correto se atingir o objetivo final, mas deve-se buscar o mínimo esforço e a máxima objetividade. O algoritmo anterior não leva em conta a possibilidade da lâmpada nova estar queimada, e sendo assim é necessário alterá-lo caso o desejo seja, além trocar a lâmpada, que esta funcione.

O algoritmo anterior não está completo, falta especificar até quando será feito o teste da lâmpada. As ações cessarão quando conseguirmos colocar uma lâmpada que acenda, caso contrário, ficaremos testando indefinidamente. Além disso, a parte do algoritmo que testa a lâmpada é repetido várias vezes, tornando-o pouco objetivo. Dessa forma, podemos fazer uma pequena alteração no algoritmo para torná-lo mais eficiente. Algoritmo 1.5: - 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

Exercício 01: Um homem precisa atravessar um rio com um barco que possui capacidade apenas para carregar ele mesmo e mais uma de suas três cargas, que são: um lobo, um bode e um pé de alface. O que o homem deve fazer para conseguir atravessar o rio sem perder suas cargas? Escreva um algoritmo mostrando a resposta, ou seja, indicando todas as ações necessárias para efetuar uma travessia segura.

Resolução do Exercício 01. Chamaremos a margem atual de margem 1 e a de destino de margem 2. Algoritmo: O homem leva o bode da margem 1 para a margem 2; O homem retorna sozinho da margem 2 para a margem 1; O homem leva o lobo da margem 1 para a margem 2; O homem retorna trazendo o bode da margem 2 para a margem 1; O homem leva o alface da margem 1 para a margem 2; O homem leva o bode da margem 1 para a margem 2.

Exercício 02: Elabore um algoritmo que mova três discos de uma Torre de Hanói, que consiste em três hastes (a-b-c) , uma das quais serve de suporte para três discos de tamanhos diferentes (1-2-3), os menores sobre os maiores. Pode-se mover um disco de cada vez para qualquer haste, contanto que nunca seja colocado um disco maior sobre o menor. O objetivo é transferir os três discos para outra haste.

Resolução do Exercício 02. Algoritmo: Mover o disco 1 da haste A para a haste B; Mover o disco 2 da haste A para a haste C; Mover o disco 1 da haste B para a haste C; Mover o disco 3 da haste A para a haste B; Mover o disco 1 da haste C para a haste A; Mover o disco 2 da haste C para a haste B; Mover o disco 1 da haste A para a haste B.

De que maneira representamos um algoritmo? Um algoritmo pode ser representado utilizando diagramas de blocos ou fluxogramas. O diagrama de blocos é uma forma padronizada e eficaz de representar passos lógicos de um determinado processo. A grande vantagem da utilização deste tipo de diagrama para representar um algoritmo, é a simplificação de um grande número de palavras por desenhos, deixando o algoritmo mais simples. A grande desvantagem é que sempre é mais difícil desenhar do que escrever, sendo a forma textual mais prática. Além disso existem tipos de blocos diferentes, que o programador precisa conhecer para utilizar o diagrama de blocos. Resumindo, os diagramas de bloco normalmente são utilizados para programas “profissionais”, os quais se tornam parte da documentação do programa.

Alguns tipos de blocos:

Representação do Algoritmo 1.5 em Diagrama de blocos - 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

Outro exemplo de diagrama de blocos Calcular a média de 4 notas: - Recebe a nota da Prova 1; Recebe a nota da Prova 2; Recebe a nota da Prova 3; Recebe a nota da Prova 4; Soma as notas das provas e divide por 4; Imprime o valor obtido.

Exercício 03: Um carro bicombustível abastecido com gasolina tem melhor desempenho (roda mais km por litros) do que se abastecido com álcool. O abastecimento deste carro com álcool só compensa se o valor deste combustível estiver até 70% do valor da gasolina. Construa um algoritmo detalhado e o seu respectivo diagrama de blocos para avaliar esta situação no momento em que o motorista pára para abastecer. Utilize os blocos ao lado para esta operação.