Anda di halaman 1dari 7

Introduo programao/Algoritmos

Introduo programao/Algoritmos
Um algoritmo um esquema de resoluo de um problema. Pode ser implementado com qualquer sequncia de valores ou objectos que tenham uma lgica infinita (por exemplo, a lngua portuguesa, a linguagem Pascal, a linguagem C, uma sequncia numrica, um conjunto de objectos tais como lpis e borracha), ou seja, qualquer coisa que possa fornecer uma sequncia lgica. Em baixo podemos ver um algoritmo implementado num fluxograma, sobre o estado de uma lmpada:

Figura 3 - Algoritmo num fluxograma Seguindo o raciocnio em cima, ento um programa de computador j por si um algoritmo? Sim, verdade. Embora tenhamos que usar um algoritmo prvio, na nossa lngua (como apresentado na imagem acima) para escrever um programa com lgica, o prprio programa que provm desse algoritmo j um algoritmo. At um esquema mental um algoritmo. Ok, j percebi o que um algoritmo. Mas porque que isso interessa ao estudo da programao? A verdade que, antes de escrevermos um programa em qualquer outra linguagem necessrio escrever um esquema em papel para evitar erros, por exemplo, na nossa lngua, segundo o programa que queremos fazer. Com isto no esquecemos a lgica que queremos dar ao programa e ser menos comum o aparecimento de erros. Por exemplo: Linguagem humana: "Se for verdade isso, acontece isto, seno acontece aquilo" Linguagem de mquina: IF isso; THEN isto; ELSE aquilo; O contedo escrito em cima est formalizado numa linguagem de algoritmia chamada Portugol [1] pela maior parte dos programadores e professores que trabalham em instituies de ensinamento das linguagens de programao. Como pode visualizar, um algoritmo pode ser escrito de vrias maneiras, de cima para baixo, da esquerda para a direita, na diagonal, em rabe, em russo... preciso que o escreva!

Introduo programao/Algoritmos

Fundamentos
Uma mquina computacional qualquer mquina (geralmente de origem eletro-eletrnica) com capacidade de receber dados, executar operaes sobre estes dados e retornar os dados transformados por estas operaes.
Entrada de Dados Processamento Sada de Dados

As mquinas computacionais eletro-eletrnicas possuem geralmente dois componentes bsicos: software e hardware. Chamamos de Hardware sua parte fsica, e software os programas que tratam os dados imputados. Quando inserimos algum dado em um computador, os dados inseridos so transformados em sinais eltricos (chamados de bits). O bit (do ingls binary digit) representa os dois estados (ligado ou desligado) que o sinal eltrico pode assumir. Para trabalhar com estes dados, podemos associar estes estados de ligado e desligado a 0 e 1. Quando utilizamos um computador, h um fluxo de sinais eltricos, que representam os dados inseridos, processados e retornados. Um conjunto de oito bits formam um byte, que uma unidade completa de informao. Dentro do byte, o estado de cada um dos oito bits, assim como sua posio relativa um ao outro, faz com que assuma o byte assuma um valor especfico (no necessariamente numrico), que serve para estrutur-lo em relao a outros bytes e criar um sistema de dados que sirva ao usurio externo. Para organizar as possibilidades de variaes destes bits dentro de um byte, podemos visualizar uma tabela ASCII:
Binrio 00100000 00100001 00100010 00100011 00100100 00100101 00100110 00100111 00101000 00101001 00101010 00101011 00101100 00101101 00101110 00101111 00110000 00110001 00110010 00110011 00110100 00110101 00110110 Dec 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 Hex 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 Representao espao () align="center" " # $ % & ' ( ) * + , . / 0 1 2 3 4 5 6

Introduo programao/Algoritmos

3
00110111 00111000 00111001 00111010 00111011 00111100 00111101 00111110 00111111 55 56 57 58 59 60 61 62 63 37 38 39 3A 3B 3C 3D 3E 3F 7 8 9 : ; < = > ?

Binrio 01000000 01000001 01000010 01000011 01000100 01000101 01000110 01000111 01001000 01001001 01001010 01001011 01001100 01001101 01001110 01001111 01010000 01010001 01010010 01010011 01010100 01010101 01010110 01010111 01011000 01011001 01011010 01011011 01011100

Dec 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92

Hex 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C

Representacin @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \

Introduo programao/Algoritmos

4
01011101 01011110 01011111 93 94 95 5D 5E 5F ] ^ _

Binrio 01100000 01100001 01100010 01100011

Dec 96 97 98 99

Hex 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E

Representao ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~

01100100 100 01100101 101 01100110 102 01100111 103 01101000 104 01101001 105 01101010 106 01101011 107 01101100 108 01101101 109 01101110 110 01101111 111 01110000 112 01110001 113 01110010 114 01110011 115 01110100 116 01110101 117 01110110 118 01110111 119 01111000 120 01111001 121 01111010 122 01111011 123 01111100 124 01111101 125 01111110 126

Introduo programao/Algoritmos

Lgica de Programao
Logicamente torna-se trabalhoso trabalhar com dados de computador bit-a-bit. Como forma de manipular este fluxo de estados eltricos e estrutur-lo de forma a permitir operaes mais simplificadas e otimizadas sobre os bytes, surgiu o conceito de programao. As linguagens de programao so geralmente em dois nveis: Linguagens de Baixo Nvel: so linguagens de programao que tratam a informao na linguagem de mquina. Linguagens de Alto Nvel: so linguagens de programao modeladas quase como a linguagem comum humana, que quando compiladas so convertidas para linguagem de mquina. Cada linguagem deste tipo possui uma sintaxe prpria, que deve ser respeitada e aprendida para que possa ser corretamente processada por seu compilador. Compilador um programa que permite que determinada programao em uma linguagem especfica seja adaptada para linguagem de mquina. No entanto, no necessrio que o programador aprenda todas as diversas linguagens disponveis no mercado. Cada linguagem recomendada para determinadas aplicaes, assim como possuem suas sintaxes prprias, mas todas so estruturadas logicamente. Com aprendizado da Lgica de Programao o aluno entender os conceitos bsicos da programao poder com menor ou maior dificuldade, dependendo da linguagem escolhida, aprender a linguagem que quiser.

Algoritmo
As linguagens de programao tratam os dados de um computador atravs do uso de algoritmos. Um algoritmo uma estruturao passo-a-passo de como um determinado problema deve ser resolvido de forma no-ambigua (ou como muitos comparam "uma receita de bolo") . Desta forma, para realizar esta estruturao necessrio o uso de ferramentas e operaes oriundas da Lgica, e principalmente da Lgica Matemtica. Antes de estruturar-se de forma lgica para programao, devemos saber qual o tipo de problema proposto, as informaes que sero imputadas e os passos a serem efetuados para atingir-se um fim especfico. Por exemplo, vamos ver um "algoritmo" sobre "tomar banho": 1.Tirar a roupa. 2.Abrir o registro. 3.Ensaboar-se. 4.Enxaguar o corpo. 5.Passar shampoo nos cabelos. 6.Enxaguar o cabelo. 7.Fechar o registro. Vimos ento um problema proposto (tomar banho) e os passos para solucionar o problema. Logicamente, que h outras formas de estruturarmos este algoritmo de forma a adapt-lo a atingir o mesmo fim. No entanto, o importante estrutur-lo de forma coerente, eficaz e simples, ou como muitos dizem de "forma elegante". Veremos na prxima lio que podemos desenhar este algoritmo e aplicar conectivos lgicos que permitam manipular as informaes necessrias.

Introduo programao/Algoritmos

Bibliografia
Algoritmo, artigo na Wikipdia em portugus Bit, artigo na Wikipdia em portugus ndice - Como programar | Lgica Prefcio Programar, o que a programao? Como programar: pensar como uma mquina Aprendizagem: o "padro eficaz" Linguagens de programao Estruturas de manipulao de dados Orientao a objectos Exerccios Bibliografia e ligaes externas

Referncias
[1] http:/ / portugol. sites. uol. com. br

Fontes e Editores da Pgina

Fontes e Editores da Pgina


Introduo programao/Algoritmos Fonte: http://pt.wikibooks.org/w/index.php?oldid=204901 Contribuidores: Albmont, Helder.wiki, Jorge Morais, MGFE Jnior, Master, Wbrito, 10 edies annimas

Fontes, Licenas e Editores da Imagem


Imagem:Introducao_programacao_fluxograma.png Fonte: http://pt.wikibooks.org/w/index.php?title=Ficheiro:Introducao_programacao_fluxograma.png Licena: GNU Free Documentation License Contribuidores: Dante Cardoso Pinto de Almeida, Lightningspirit

Licena
Creative Commons Attribution-Share Alike 3.0 Unported http:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/

Anda mungkin juga menyukai