Aula01 Programacao Em Geofisica

  • Published on
    17-Feb-2015

  • View
    26

  • Download
    2

Embed Size (px)

Transcript

<p>Universidade de Braslia Instituto de Geocincias Programao em Geofsica</p> <p>Programao em GeofsicaAula 01</p> <p>Lgica de ProgramaoProf. Marcelo Peres Rochamarcelorocha@unb.br blog: my.opera.com/marcelorocha</p> <p>Braslia-DF - 2 Semestre/2011</p> <p>Universidade de Braslia Instituto de Geocincias Programao em Geofsica</p> <p>O que lgica?</p> <p>- Podemos dizer que a lgica a arte do bem pensar, que acincia das formas de pensamento.</p> <p>- Visto que a forma mais complexa do pensamento o</p> <p>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.</p> <p>Universidade de Braslia Instituto de Geocincias Programao em Geofsica</p> <p>Existe lgica no dia-a-dia?</p> <p>- Sempre que pensamos, a lgica nos acompanha. Quandofalamos ou escrevemos, estamos expressando nosso pensamento, logo precisamos usar a lgica nestas atividades.</p> <p>- 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.</p> <p>Exemplo:A gaveta est fechada. A caneta est dentro da gaveta. Precisamos primeiro abrir a gaveta para depois pegar a caneta.</p> <p>Universidade de Braslia Instituto de Geocincias Programao em Geofsica</p> <p>Mas e a Lgica de Programao?</p> <p>- 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).</p> <p>- Um mesmo raciocnio pode ser expresso em qualquer um dosinmeros idiomas existentes, mas continuar representando o mesmo raciocnio, usando apenas uma outra conveno.</p> <p>- Algo similar ocorre com a Lgica de Programao, que pode serconcebida e pode ser representada em qualquer uma das inmeras linguagens de programao existentes.</p> <p>- Como cada uma das diversas linguagens tem suas particularidades, interessante, para representar mais fielmente o raciocnio lgico, o uso dos chamados Algoritmos.</p> <p>Universidade de Braslia Instituto de Geocincias Programao em Geofsica</p> <p>O que um Algoritmo?</p> <p>- Um algoritmo pode ser definido como a seqncia de passosnecessrios para se atingir um objetivo bem definido.</p> <p>- Na medida em que precisamos especificar uma seqncia de</p> <p>passos, precisamos utilizar ordem, ou seja, pensar em ordem, portanto precisamos utilizar a Lgica.</p> <p>- Apesar do nome pouco comum, os algoritmos so comuns emnosso cotidiano, como por exemplo, uma receita de bolo.</p> <p>- 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.</p> <p>Universidade de Braslia Instituto de Geocincias Programao em Geofsica</p> <p>Exemplos de Algoritmo</p> <p>- 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.</p> <p>- 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.</p> <p>Universidade de Braslia Instituto de Geocincias Programao em Geofsica</p> <p>- 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.</p> <p>Universidade de Braslia Instituto de Geocincias Programao em Geofsica</p> <p>- 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.</p> <p>Universidade de Braslia Instituto de Geocincias Programao em Geofsica</p> <p>- O algoritmo ser correto se atingir o objetivo final, mas deve-se buscar o mnimo esforo e a mxima objetividade.</p> <p>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???</p> <p>- 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.</p> <p>Universidade de Braslia Instituto de Geocincias Programao em Geofsica</p> <p>- O algoritmo anterior no est completo, falta especificar at quando ser feito o teste da lmpada.</p> <p>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;</p> <p>- 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.</p> <p>- Dessa forma, podemosfazer uma pequena alterao no algoritmo para torn-lo mais eficiente.</p> <p>Universidade de Braslia Instituto de Geocincias Programao em Geofsica</p> <p>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.</p> <p>Universidade de Braslia Instituto de Geocincias Programao em Geofsica</p> <p>- Resoluo do Exerccio 01.Chamaremos a margem atual de margem 1 e a de destino de margem 2.Algoritmo:</p> <p>-</p> <p>O O O O O O O</p> <p>homem homem homem homem homem homem homem</p> <p>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.</p> <p>Universidade de Braslia Instituto de Geocincias Programao em Geofsica</p> <p>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.</p> <p>Universidade de Braslia Instituto de Geocincias Programao em Geofsica</p> <p>- Resoluo do Exerccio 02.Algoritmo:</p> <p>-</p> <p>Mover Mover Mover Mover Mover Mover Mover</p> <p>o o o o o o o</p> <p>disco disco disco disco disco disco disco</p> <p>1 2 1 3 1 2 1</p> <p>da da da da da da da</p> <p>haste haste haste haste haste haste haste</p> <p>A A B A C C A</p> <p>para para para para para para para</p> <p>a a a a a a a</p> <p>haste haste haste haste haste haste haste</p> <p>B; C; C; B; A; B; B.</p> <p>Universidade de Braslia Instituto de Geocincias Programao em Geofsica</p> <p>De que maneira representamos um algoritmo?</p> <p>- Um algoritmo pode ser representado utilizando diagramas de blocos oufluxogramas.</p> <p>- O diagrama de blocos uma forma padronizada e eficaz de representarpassos lgicos de um determinado processo.</p> <p>- 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.</p> <p>- 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.</p> <p>- Resumindo, os diagramas de bloco normalmente so utilizados para</p> <p>programas profissionais, os quais se tornam parte da documentao do programa.</p> <p>Universidade de Braslia Instituto de Geocincias Programao em Geofsica</p> <p>Alguns tipos de blocos:</p> <p>Universidade de Braslia Instituto de Geocincias Programao em Geofsica</p> <p>Representao do Algoritmo 1.5 em Diagrama de blocos</p> <p>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;</p> <p>Universidade de Braslia Instituto de Geocincias Programao em Geofsica</p> <p>Outro exemplo de diagrama de blocos</p> <p>Calcular a mdia 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.</p> <p>Universidade de Braslia Instituto de Geocincias Programao em Geofsica</p> <p>Exerccio 03:</p> <p>Um carro bicombustvel 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 combustvel estiver at 70% do valor da gasolina. Construa um algoritmo detalhado e o seu respectivo diagrama de blocos para avaliar esta situao no momento em que o motorista vai abastecer. Utilize os blocos ao lado para esta operao.</p>