Вы находитесь на странице: 1из 9

Programao estruturada

A programao estruturada estabelece uma disciplina de desenvolvimento de algoritmos que facilita a compreenso de programas atravs do nmero restrito de mecanismos de controle da execuo de programas. Qualquer algoritmo, independentemente da rea de aplicao, de sua complexidade e da linguagem de programao na qual ser codificado, pode ser descrito atravs destes mecanismos bsicos. O princpio bsico de programao estruturada que um programa composto por blocos elementares de cdigo que se interligam atravs de trs mecanismos bsicos, que so sequncia, seleo e iterao. Cada uma destas construes tem um ponto de incio (o topo do bloco) e um ponto de trmino (o fim do bloco) de execuo. Sequncia implementa os passos de processamento necessrios para descrever qualquer programa. Por exemplo, um segmento de programa da forma faa primeiro a Tarefa a e depois a Tarefa b seria representado por uma sequncia de dois retngulos. A mesma construo em pseudo-linguagem seria denotada pela expresso das duas tarefas, uma aps a outra.

Seleo especifica a possibilidade de selecionar o fluxo de execuo do processamento baseado em ocorrncias lgicas. H duas formas bsicas de condio. A primeira forma a construo IF, que permite representar fluxos da forma se a condio lgica x for verdadeira, faa a Tarefa a; seno (isto , se a condio x for falsa), faa a Tarefa b. Na representao em fluxograma, as duas setas que saem do losango de condio recebem rtulos T e F para indicar o fluxo de execuo quando a condio especificada verdadeira ou falsa, respectivamente. O retngulo sob a seta rotulada T normalmente denominado o bloco then da construo, enquanto que o outro retngulo denominado bloco else.

A outra forma de seleo estende o nmero de condies que podem ser avaliadas para definir o fluxo de execuo. Esta construo, SWITCH, permite representar fluxos da forma ``se a varivel y tem o valor 1, faa a Tarefa a; se y tem o valor 2, faa a Tarefa b; se tem o valor 0, faa a Tarefa c; para qualquer outro valor, faa Tarefa d.'' Observe que a construo SWITCH no essencial, uma vez que ela pode ser representada em termos da seleo com IF, como em:

Entretanto, a utilizao de estruturas SWITCH simplifica a expresso de situaes que ocorrem frequentemente em programas, por exemplo, selecionar aes dependendo de uma opo escolhida em um menu sem ter que recorrer ao alinhamento excessivo de condies da forma IF. No entanto, essa condio est restrita a condies lgicas envolvendo exclusivamente testes de igualdade.

Iterao permite a execuo repetitiva de segmentos do programa. Na forma bsica de repetio, WHILE, uma condio lgica verificada. Caso seja verdadeira, o bloco de tarefas associado ao comando executado. A condio ento reavaliada; enquanto for verdadeira, a tarefa repetidamente executada.

Uma variante dessa construo apresentada na figura, onde inicialmente a tarefa executada e apenas ento a condio de repetio avaliada; quando a condio torna-se verdadeira, a iterao encerrada.

Tipicamente, a estratgia de desenvolvimento top-down utilizada na descrio algortmica de procedimentos. Neste caso, um retngulo ou uma linha de pseudocdigo pode descrever uma tarefa to complexa quanto necessrio, sendo que esta tarefa pode ser posteriormente descrita em termos de outro(s) fluxograma(s) ou pseudocdigo(s). Em geral, so aplicados tantos refinamentos quantos forem necessrios at atingir um ponto em que uma tarefa possa ser facilmente descrita em termos das construes suportadas pela linguagem de codificao.

Raciocnio lgico

Em lgica, pode-se distinguir trs tipos de raciocnio lgico: deduo, induo e abduo. Dada uma premissa, uma concluso, e uma regra segundo a qual a premissa implica a concluso, eles podem ser explicados da seguinte forma: Deduo corresponde a determinar a concluso. Utiliza-se da regra e sua premissa para chegar a uma concluso. Exemplo: "Quando chove, a grama fica molhada. Choveu hoje. Portanto, a grama est molhada." comum associar os matemticos com este tipo de raciocnio. Induo determinar a regra. aprender a regra a partir de diversos exemplos de como a concluso segue da premissa. Exemplo: "A grama ficou molhada todas as vezes em que choveu. Ento, se chover amanh, a grama ficar molhada." comum associar os cientistas com este estilo de raciocnio. Abduo significa determinar a premissa. Usa-se a concluso e a regra para defender que a premissa poderia explicar a concluso. Exemplo: "Quando chove, a grama fica molhada. A grama est molhada, ento pode ter chovido." Associa-se este tipo de raciocnio aos diagnosticistas e detetives.

Conceitos Iniciais

A lgica uma Cincia de ndole matemtica fortemente ligada Filosofia. Um sistema lgico, por sua vez, um conjunto de axiomas e regras de inferncia que visam representar, formalmente, um raciocnio vlido. De maneira simplificada, podemos dizer que a lgica a ferramenta que devemos utilizar para concatenar ideias e proposies em busca da verdade. Voc perceber em breve, na prtica, o que acabamos de afirmar. O primeiro conceito que devemos firmar o de proposio:

uma sentena (declarada por meio de palavras ou smbolos) que ser considerada, por seu contedo, verdadeira ou falsa. . Um exemplo de sentena : "Os humanos precisam de gua para sobreviver". Esta uma proposio que se mostra, logicamente, verdadeira. Acabamos de nos referir ao valor lgico de uma sentena: "verdadeiro", valor este que, para outra proposio, poderia ser "falso". Em resumo, para uma proposio p, que pode ser avaliada por um critrio lgico, pode ser atribudo os valores verdadeiro (V) ou falso (F). Regra geral as proposies so representadas por uma letra minscula: p, q, r e etc. Veja a sentena "p" abaixo enunciada: p: Voc nunca esteve no planeta Saturno. Podemos afirmar que a proposio p verdadeira (V). Temos, ento, que: VL (p) = (V), ou seja, o valor lgico (VL) da sentena (p) verdadeiro (V).

H 3 (trs) princpios que voc deve saber: 1) Princpio da identidade: "uma proposio verdadeira verdadeira; uma proposio falsa falsa". 2) Princpio da no-contradio: "nenhuma proposio pode ser verdadeira e falsa ao mesmo tempo". 3) Princpio do terceiro-excludo: "uma proposio ou ser verdadeira ou ser falsa: no h outra possibilidade". As proposies podem ser simples ou compostas. Exemplo de proposio simples aquela que utilizamos acima: "Voc nunca esteve no planeta Saturno". Veja, agora, o exemplo de uma proposio composta: "Ou Magali vai ao teatro, ou Mrcia vai ao cinema. Como se pode ver, trata-se de uma conjugao de proposies, ou seja, 2 (duas) ou mais proposies. Veja mais um exemplo: Mrcia estudante e Magali professora. Para representar simbolicamente esta ltima proposio, faramos assim: Dizemos que a proposio p = "Mrcia estudante, e a proposio q = "Magali professora". Simbolicamente temos que p q. L-se: p "e" q. O "e lgico" () o primeiro smbolo que aprenderemos. Para que a "sentena" em estudo seja verdadeira necessrio que a proposio "p" seja verdadeira E a proposio "q" seja verdadeira. Vamos analisar as possibilidades de valor para as sentenas, montando uma tabela verdade:

Os conectivos existem,

como

se

pode

constatar,

em

funo

das

proposies compostas e assim se subdividem: O conectivo "e" () denominado "de conjuno". Podemos utilizar para ilustrar como exemplo de conjuno o mesmo exemplo acima citado: Mrcia estudante e Magali professora. Como se pode ver, utilizamos o conectivo de conjuno "e" para construir esta espcie de proposio composta.

Em uma proposio conjuntiva a sentena s ser verdadeira se ambas as proposies forem verdadeiras. Assim, no exemplo supracitado, a sentena s ser verdadeira se a proposio "Mrcia estudante" for verdadeira E a proposio Magali professora for verdadeira. Reitere-se: se ambas as proposies no forem verdadeiras, ento a sentena falsa. Veja professora. a tabela-verdade da sentena Mrcia estudante e Magali

Vamos ver agora outro smbolo: o ou lgico. O conectivo "ou" () denominado de disjuno. E o que vem a ser disjuno? Recebe o nome de disjuno toda proposio composta em que as partes estejam unidas pelo conectivo ou. Simbolicamente, representaremos esse conectivo por . Portanto, se temos a sentena (formada pelas proposies p e q) "Mrcia estudante" ou "Magali professora", teremos como representao p q (l-se: p ou q). Veja professora. a tabela-verdade da sentena Mrcia estudante ou Magali

Observe que uma disjuno ser falsa quando as duas partes que a compem forem falsas e nos demais casos a disjuno ser verdadeira. Vamos fazer uma pequena sntese das tabelas-verdade acima.

Uma sentena que contenha a conjuno "e" indica a necessidade de satisfazer DUAS condies. A conjuno "e" NO admite que s Mrcia seja estudante e Magali no seja professora ou vice-versa. Assim, a condio para que a sentena "Mrcia estudante" e "Magali professora" seja verdadeira Mrcia ser estudante E Magali ser professora. Se Mrcia estudante e Magali no professora a sentena falsa! Se Mrcia no estudante e Magali professora a sentena falsa! Se Mrcia no estudante e Magali no professora evidente que a sentena falsa! Para que a sentena seja verdadeira, como dito, ser necessrio que Mrcia seja estudante e Magali seja professora.

Interpretao de algoritmos Uma linguagem de programao pode ser convertida, ou traduzida, em cdigo de mquina por compilao ou interpretada por um processo denominado interpretao. Em ambas ocorre a traduo do cdigo fonte para cdigo de mquina.29 Se o mtodo utilizado traduz todo o texto do programa (tambm chamado de cdigo), para s depois executarNota 3 o programa, ento diz-se que o programa foi compilado e que o mecanismo utilizado para a traduo um compilador (que por sua vez nada mais do que um programa).30 A verso compilada do programa tipicamente armazenada, de forma que o programa pode ser executado um nmero indefinido de vezes sem que seja necessria nova compilao, o que compensa o tempo gasto na compilao. Isso acontece com linguagens como Pascal31 e C. Se o texto do programa executado medida que vai sendo traduzido, como em JavaScript, BASIC, Python ou Perl, num processo de traduo de trechos seguidos de sua execuo imediata, ento diz-se que o programa foi interpretado e que o mecanismo utilizado para a traduo um interpretador. Programas interpretados so geralmente mais lentos do que os compilados, mas so tambm geralmente mais flexveis, j que podem interagir com o ambiente mais facilmente.32 Embora haja essa distino entre linguagens interpretadas e compiladas, as coisas nem sempre so to simples. H linguagens compiladas para um cdigo de mquina de uma mquina virtual (sendo estamquina virtual apenas mais um software, que emula a mquina virtual sendo executado em uma mquina real), como Java33 (compila para a plataforma Java34 ) e C (compila para a plataforma CLI35 ). E tambm h outras formas de interpretar em que os cdigos fontes, ao invs de serem interpretados linha-a-linha, tm blocos "compilados" para a memria, de acordo com as necessidades, o que aumenta a performance dos programas quando os mesmos mdulos so chamados vrias vezes, tcnica esta conhecida como JIT. Como exemplo, podemos citar a linguagem Java. Nela, um compilador traduz o cdigo java para o cdigo intermedirio (e portvel) da JVM. As JVMs originais interpretavam esse cdigo, de acordo com o cdigo de mquina do computador hospedeiro, porm atualmente elas compilam, segundo a tcnica JIT o cdigo JVM para cdigo hospedeiro. A traduo tipicamente feita em vrias fases, sendo as mais comuns a anlise lxica, a anlise sinttica (ou parsing), a gerao de cdigo e a otimizao.36 Em compiladores tambm comum a gerao de cdigo intermedirio.Nota 4