Você está na página 1de 7

Tutorial de Introduo Lgica e Algoritmia

Este tutorial tem o objectivo de dar algumas bases nestas duas disciplinas para iniciantes programao. Sendo que a programao est assente na algoritmia, e a algoritmia est assente na lgica, como se ver ao longo deste pequeno tutorial, este torna-se de extrema importncia para se entender muitos porqus da programao que os beginners muitas vezes colocam.

Lgica
De forma resumida, a lgica o ramo da filosofia que cuida das regras do bem pensar, ou do pensar correto, sendo, portanto, um instrumento do pensar.1) Nesta parte vamos entender os operadores lgicos bsicos - E, OU e OU OU recorrendo s Tabelas de Verdade.

Proposies e condies
De forma muito resumida, seguem-se trs exemplos simples e perceptveis:

Sentena: O Joo gosta de ir praia. Proposio: O Joo gosta de ir praia e ao campo. Condio: O Joo gosta de ir praia se estiver bom tempo.

Tabela de Verdade
Numa Tabela de Verdade so analisadas todas as hipteses de resposta a um problema lgico, desde o mais simples ao mais complexo, sendo mesmo a base das bases da investigao criminal forense. So lanadas as hipteses de forma lgica, unindo as sentenas em proposies e relacionando estas ltimas em condies. Um exemplo simples e sem fundamentao forense: O Joo culpado se a arma do crime tiver as impresses digitais dele. Ou a arma uma faca se as impresses digitais forem as dextras, ou ento uma pistola se ele praticar carreira de tiro. A Tabela de Verdade tem a seguinte estrutura bsica: proposio 1 (p) proposio 2 (q) Resultado com o operador lgico X (p X q) V V VXV V F VXF F V FXV F F FXF Havendo duas proposies, h quatro hipteses de conjugao conforme os valores lgicos da proposio. Havendo N proposies num enunciado lgico como o anterior,

vo existir combinaes. Neste caso, havendo 2 proposies, existem combinaes. Valor lgico: Verdadeiro, Falso. Uma proposio s pode tomar um valor lgico - no pode ser V e F ao mesmo tempo!

Operadores lgicos
E - Conjuno
O Joo gosta de praia e do campo. Ou seja, o Joo gosta de ambas as coisas, a praia e o campo. p q VVV VF F F VF F F F S verdadeiro quando ambas as proposies so verdadeiras.

OU - Disjuno
Tambm denominada de Disjuno inclusiva. O Joo gosta de praia ou do campo Isto , o Joo gosta ou da praia, ou do campo ou de ambos. p q p OU q VVV VF V F VV F F F S falso quando ambas as proposies so falsas.

OU... OU... - Disjuno exclusiva


O Joo ou gosta de praia ou gosta de campo. Ou seja, O Joo gosta de um s destes ambientes, e no dos dois ao mesmo tempo: ou um ou outro. p q OU p OU q VVF VF V F VV

F F F falso quando as proposies tm o mesmo valor lgico.

Condies
Implicao
Se o Joo gosta de ir praia, ento gosta do mar. p q VVV VF F F VV F F V NOTA: Verdadeiro implica falso falso. Mas Falso implica verdadeiro uma condio verdadeira.

Equivalncia
Tambm chamada de Implicao dupla ou bi-implicao. O Joo gosta de praia se e s se gosta de mar. p q VVV VF F F VF F F V Ou seja, s verdade quando ambas as proposies tiverem o mesmo valor lgico - s assim as proposies equivalem uma outra.

Outras operaes lgicas


Negao
Esta uma operao muito bsica que, simplesmente, nega o resultado lgico de uma proposio ou condio. p~ VF F V O Joo no gosta de ir praia e gosta de de mar. - ~

Dupla negao: ~~

Igualdade e diferena
Sem negao:

- verdadeiro - falso

Com negao:

~ ~

- falso - verdadeiro

Maior do que, menor do que, maior ou igual que, menor ou igual que

- falso - verdadeiro

- falso

- verdadeiro

Principais Leis de Morgan


~ ~

~ ~

~ ~

Algoritmia
Um algoritmo uma sequncia finita de instrues bem definidas e no ambguas, cada uma das quais pode ser executada mecanicamente num perodo de tempo finito e com uma quantidade de esforo finita.2) Ou seja, um algoritmo um caminho bem definido para se resolver um determinado problema. Por exemplo: Problema Algoritmo Geral

Multiplicar 36 por 2 Alg. da Multiplicao: Ordenar lista de forma crescente: Alg. de Ordenao (Crescente):

Representao de Algoritmos
Um algoritmo tem uma representao para que possa ser facilmente interpretado. Antes de se programar, os problemas devem ser estudados para se chegar a um algoritmosoluo. Este ser representado num esquema, chamada Fluxograma, ou ento escrito na linguagem-me (no nosso caso, Portugus) ou numa mistura desta com a linguagem de programao a que nos propomos resolver o dito problema. Vamos ento analisar um algoritmo muito simples que resolve o seguinte problema: Dados dois nmeros, inteiros, inseridos pelo utilizador, dizer qual o maior, ou ento se so iguais.

Fluxograma
Vamos resolver o problema anterior segundo o algoritmo tradicional: anlise caso-acaso, que com este problema totalmente viveis pois basta analisar duas situaes, segundo esta ordem:

Se num1 maior que num2, mostra num1 Caso contrrio, se num2 que maior que num1, ento mostra num2 Por fim, se num1 no o maior e num2 tambm o no , conclui-se que s podem ser iguais.

Um fluxograma respeita uma norma geral que pode ser adaptada por cada pessoa. A imagem seguinte mostra o algoritmo de resoluo do problema proposto seguindo a norma geral dos fluxogramas. No canto superior direito da imagem est uma pequena legenda, que inclui smbolos no includos no esquema.

De notar que cada caminho chamado de fluxo, e no final do programa reconhecemse trs fluxos que so unidos antes de se dar o fim do programa: o smbolo um crculo e denomina-se conector de fluxos. Na prtica, na programao no se nota esta conexo de fluxos, mas na teoria, havendo a um determinado ponto vrios caminhos possveis, eles unem-se sempre, pelo menos no fim do programa. Esta unio pode ocorrer noutro ponto e pode reunir apenas alguns dos N fluxos que existam - vrios conectores podem existir. Pontos em que um fluxo se divide so quase sempre Condies, excepto nos Ciclos que, em si, tm dois fluxos: o fluxo das aces a processar dentro do ciclo e um fluxo de retoma do ciclo no caso de a condio de paragem no for satisfeita. Esta a teoria bsica de fluxos nas Estruturas de Repetio.

Pseudo-cdigo
Incio Programa Ler num1 Ler num2 Se (num1>num2) Ento

Escrever "O maior : " & num1 SeNo Se (num1<num2) Ento Escrever "O maior : " & num2 SeNo Escrever "So iguais." Fim Se Fim Se Fim Programa

Alguns algoritmos
Algoritmo de ordenao
Ver o Captulo 5 da Parte II do nosso Tutorial de Pascal: Ordenao crescente de uma lista. Aproveita e v como pode ser programado recorrendo a Pascal.

Grafos
Ver o artigo da Revista PROGRAMAR: Parte 13) e Parte 2.

Você também pode gostar