Aula01 Programacao Em Geofisica

Embed Size (px)

Text of Aula01 Programacao Em Geofisica

Universidade de Braslia Instituto de Geocincias Programao em Geofsica

Programao em GeofsicaAula 01

Lgica de ProgramaoProf. Marcelo Peres Rochamarcelorocha@unb.br blog: my.opera.com/marcelorocha

Braslia-DF - 2 Semestre/2011

Universidade de Braslia Instituto de Geocincias Programao em Geofsica

O que lgica?

- Podemos dizer que a lgica a arte do bem pensar, que acincia das formas de pensamento.

- Visto que a forma mais complexa do pensamento o

raciocnio, a lgica estuda a correo do raciocnio, ou ainda, podemos dizer que a lgica tem em vista a ordem da razo.Exemplo: Todo mamfero um animal. Todo cavalo um mamfero. Portanto, todo cavalo um animal.

Universidade de Braslia Instituto de Geocincias Programao em Geofsica

Existe lgica no dia-a-dia?

- Sempre que pensamos, a lgica nos acompanha. Quandofalamos ou escrevemos, estamos expressando nosso pensamento, logo precisamos usar a lgica nestas atividades.

- Podemos perceber a importncia da lgica em nossa vida,no s na teoria, mas tambm na prtica, 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.

Universidade de Braslia Instituto de Geocincias Programao em Geofsica

Mas e a Lgica de Programao?

- O raciocnio algo abstrato. Os seres humanos tm a capacidadede express-lo atravs da palavra falada ou escrita, que por sua vez se baseia em um determinado idioma, que segue uma srie de padres (gramtica).

- Um mesmo raciocnio pode ser expresso em qualquer um dosinmeros idiomas existentes, mas continuar representando o mesmo raciocnio, usando apenas uma outra conveno.

- Algo similar ocorre com a Lgica de Programao, que pode serconcebida e pode ser representada em qualquer uma das inmeras linguagens de programao existentes.

- Como cada uma das diversas linguagens tem suas particularidades, interessante, para representar mais fielmente o raciocnio lgico, o uso dos chamados Algoritmos.

Universidade de Braslia Instituto de Geocincias Programao em Geofsica

O que um Algoritmo?

- Um algoritmo pode ser definido como a seqncia de passosnecessrios para se atingir um objetivo bem definido.

- Na medida em que precisamos especificar uma seqncia de

passos, precisamos utilizar ordem, ou seja, pensar em ordem, portanto precisamos utilizar a Lgica.

- Apesar do nome pouco comum, os algoritmos so comuns emnosso cotidiano, como por exemplo, uma receita de bolo.

- Quando elaboramos um algoritmo, devemos especificar aesclaras e precisas, que a partir de um estado inicial, aps um perodo de tempo finito, produzem um estado final previsvel e bem definido.

Universidade de Braslia Instituto de Geocincias Programao em Geofsica

Exemplos de Algoritmo

- Podemos escrever um algoritmo, utilizando portuguscoloquial que descreva os passos para a soluo de um determinado problema, como por exemplo, trocar uma lmpada.Algoritmo 1.1:- Pegar uma escada; - Posicionar a escada embaixo da lmpada; - Buscar uma lmpada nova; - Subir na escada; - Retirar a lmpada velha; - Colocar a lmpada nova.

- A seqncia acima pode ser seguida por qualquer pessoa para se alcanar o objetivo deste algoritmo: Trocar a lmpada. Esta seqncia linear e de cima para baixo e da esquerda para direita, considerando que se trata de um texto.

Universidade de Braslia Instituto de Geocincias Programao em Geofsica

- E no caso da lmpada no estar queimada?A execuo das aes conduziria a uma troca, independente de a lmpada estar ou no queimada, pois no foi prevista esta possibilidade na execuo. Um novo algoritmo poderia ser construdo efetuando um teste sobre a lmpada.Algoritmo 1.2:- Pegar uma escada; - Posicionar a escada embaixo da lmpada; - Buscar uma lmpada nova; - Acionar o interruptor; - Se a lmpada no acender, ento - Subir na escada; - Retirar a lmpada velha; - Colocar a lmpada nova.

Universidade de Braslia Instituto de Geocincias Programao em Geofsica

- No algoritmo anterior foi colocado um teste condicional. Estealgoritmo est certo, visto que atinge seu objetivo, mas ele pode ser melhorado.Algoritmo 1.3: - Acionar o interruptor; - Se a lmpada no acender, ento - Pegar uma escada; - Posicionar a escada embaixo da lmpada; - Buscar uma lmpada nova; - Subir na escada; - Retirar a lmpada velha; - Colocar a lmpada nova.

Universidade de Braslia Instituto de Geocincias Programao em Geofsica

- O algoritmo ser correto se atingir o objetivo final, mas deve-se buscar o mnimo esforo e a mxima objetividade.

Algoritmo 1.4: - Acionar o interruptor; - Se a lmpada no acender, ento - Pegar uma escada; - Posicionar a escada embaixo da lmpada; - Buscar uma lmpada nova; - Acionar o interruptor; - Subir na escada; - Retirar a lmpada queimada; - Colocar a lmpada nova; - Se a lmpada no acender, ento - Retirar a lmpada queimada; - Colocar a lmpada nova; - Se a lmpada no acender, ento - Retirar a lmpada queimada; - Colocar a lmpada nova; - Se a lmpada no acender, ento - Retirar a lmpada queimada; - Colocar a lmpada nova; ... At quando???

- O algoritmo anteriorno leva em conta a possibilidade da lmpada nova estar queimada, e sendo assim necessrio alter-lo caso o desejo seja, alm trocar a lmpada, que esta funcione.

Universidade de Braslia Instituto de Geocincias Programao em Geofsica

- O algoritmo anterior no est completo, falta especificar at quando ser feito o teste da lmpada.

Algoritmo 1.5:- Acionar o interruptor; - Se a lmpada no acender, ento - Pegar uma escada; - Posicionar a escada embaixo da lmpada; - Buscar uma lmpada nova; - Acionar o interruptor; - Subir na escada; - Retirar a lmpada queimada; - Colocar a lmpada nova; - Enquanto a lmpada no acender, faa - Retirar a lmpada queimada; - Colocar a lmpada nova;

- As aes cessaroquando conseguirmos colocar uma lmpada que acenda, caso contrrio, ficaremos testando indefinidamente. Alm disso, a parte do algoritmo que testa a lmpada repetido vrias vezes, tornando-o pouco objetivo.

- Dessa forma, podemosfazer uma pequena alterao no algoritmo para torn-lo mais eficiente.

Universidade de Braslia Instituto de Geocincias Programao em Geofsica

Exerccio 01: Um homem precisa atravessar um rio com um barco que possui capacidade apenas para carregar ele mesmo e mais uma de suas trs cargas, que so: 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 aes necessrias para efetuar uma travessia segura.

Universidade de Braslia Instituto de Geocincias Programao em Geofsica

- Resoluo do Exerccio 01.Chamaremos a margem atual de margem 1 e a de destino de margem 2.Algoritmo:

-

O O O O O O O

homem homem homem homem homem homem homem

leva o bode da margem 1 para a margem 2; retorna sozinho da margem 2 para a margem 1; leva o lobo da margem 1 para a margem 2; retorna trazendo o bode da margem 2 para a margem 1; leva o alface da margem 1 para a margem 2; retorna sozinho da margem 2 para a margem 1; leva o bode da margem 1 para a margem 2.

Universidade de Braslia Instituto de Geocincias Programao em Geofsica

Exerccio 02: Elabore um algoritmo que mova trs discos de uma Torre de Hani, que consiste em trs hastes (a-b-c) , uma das quais serve de suporte para trs discos de tamanhos diferentes (1-23), 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 trs discos para outra haste.

Universidade de Braslia Instituto de Geocincias Programao em Geofsica

- Resoluo do Exerccio 02.Algoritmo:

-

Mover Mover Mover Mover Mover Mover Mover

o o o o o o o

disco disco disco disco disco disco disco

1 2 1 3 1 2 1

da da da da da da da

haste haste haste haste haste haste haste

A A B A C C A

para para para para para para para

a a a a a a a

haste haste haste haste haste haste haste

B; C; C; B; A; B; B.

Universidade de Braslia Instituto de Geocincias Programao em Geofsica

De que maneira representamos um algoritmo?

- Um algoritmo pode ser representado utilizando diagramas de blocos oufluxogramas.

- O diagrama de blocos uma forma padronizada e eficaz de representarpassos lgicos de um determinado processo.

- A grande vantagem da utilizao deste tipo de diagrama para representarum algoritmo, a simplificao de um grande nmero de palavras por desenhos, deixando o algoritmo mais simples.

- A grande desvantagem que sempre mais difcil desenhar do queescrever, sendo a forma textual mais prtica. Alm disso existem tipos de blocos diferentes, que o programador precisa conhecer para utilizar o diagrama de blocos.

- Resumindo, os diagramas de bloco normalmente so utilizados para

programas profissionais, os quais se tornam parte da documentao do programa.

Universidade de Braslia Instituto de Geocincias Programao em Geofsica

Alguns tipos de blocos:

Universidade de Braslia Instituto de Geocincias Programao em Geofsica

Representao do Algoritmo 1.5 em Diagrama de blocos

Algoritmo 1.5: - Acionar o interruptor; - Se a lmpada no acender, ento - Pegar uma escada; - Posicionar a escada embaixo da lmpada; - Buscar uma lmpada nova; - Acionar o interruptor; - Subir na escada; - Retirar a lmpada queimada; - Colocar a lmpada nova; - Enquanto a lmpada no acender, faa - Retirar a lmpada queimada; - Colocar a lmpada nova;

Universidade de Braslia Instituto