Beruflich Dokumente
Kultur Dokumente
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.
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.
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
~ ~
~ ~
~ ~
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.