Você está na página 1de 10

4

Introduo ao Algoritmo ca

4.1

Conceito de Algoritmo

A automao o processo em que uma tarefa deixa de ser desempenhada pelo homem ca e e passa a ser realizada por mquinas, sejam estes dispositivos mecnicos, eletrnicos (como a a o os computadores) ou de natureza mista. Para que a automao de uma tarefa seja bem sucedida necessrio que a mquina ca e a a que passar a realiz-la seja capaz de desempenhar cada uma das etapas constituintes a a do processo a ser automatizado com ecincia, de modo a garantir a repetibilidade do e mesmo. Assim, necessrio que seja especicado com clareza e exatido o que deve ser e a a realizado em cada uma das fases do processo a ser automatizado, bem como a seqncia ue em que estas fases devem ser realizadas. ` A especicaao da seqncia ordenada de passos que deve ser seguida para a realizaao c ue c de uma tarefa, garantindo a sua repetibilidade, d-se o nome de algoritmo. a Ao contrrio do que se pode pensar, o conceito de algoritmo no foi criado para a a satisfazer `s necessidades da computaao. Pelo contrrio, a programao de computadores a c a ca apenas um dos campos de aplicao dos algoritmos. Na verdade, h inmeros casos que e ca a u podem exemplicar o uso (involuntrio ou no) de algoritmos para a padronizaao do a a c exerc de tarefas rotineiras (vide exemplos da Seao 2.1). No entanto, daqui adiante a cio c atenao desta apostila estar voltada ` automao de tarefas utilizando computadores. c a a ca Para que um computador possa desempenhar uma tarefa necessrio que esta seja dee a talhada passo-a-passo, numa forma compreens pela mquina, utilizando aquilo que se vel a chama de programa. Neste sentido, um programa de computador nada mais que um ale goritmo escrito numa forma compreens pelo computador (linguagem de programao). vel ca

4.1.1

Algumas Denies de Algoritmo co

Serve como modelo para programas, pois sua linguagem intermediria ` linguagem e a a humana e `s linguagens de programaao, sendo ento, uma boa ferramenta na validao a c a ca da lgica de tarefas a serem automatizadas. o Os algoritmos, servem para representar a soluao de qualquer problema, mas no caso c do Processamento de Dados, eles devem seguir as regras bsicas de programaao para que a c sejam compat veis com as linguagens de programaao. c

4.2

Formas de Representao de Algoritmos ca

Existem diversas formas de representaao de algoritmos, mas no h um consenso c a a com relao ` melhor delas. ca a O critrio usado para classicar hierarquicamente estas formas est diretamente ligado e a ao n de detalhe ou, inversamente, ao grau de abstraao oferecido. vel c Algumas formas de representaao de algoritmos tratam os problemas apenas em n c vel lgico, abstraindo-se de detalhes de implementao muitas vezes relacionados com alguma o ca linguagem de programao espec ca ca. Por outro lado existem formas de representao ca de algoritmos que possuem uma maior riqueza de detalhes e muitas vezes acabam por obscurecer as idias principais do algoritmo, dicultando seu entendimento. e Dentre as formas de representaao de algoritmos mais conhecidas podemos citar: c Descriao Narrativa; c Fluxograma Convencional; Pseudocdigo, tambm conhecido como Portugus Estruturado ou Portugol. o e e

4.2.1

Descrio Narrativa ca

Nesta forma de representaao os algoritmos so expressos diretamente em linguagem c a natural. Como exemplo, tm-se os algoritmos seguintes: e

Receita de bolo: Misture os ingredientes Unte a forma com manteiga Despeje a mistura na forma Se houver coco ralado ento despeje sobre a mistura a Leve a forma ao forno Enquanto no corar a deixe a forma no forno Retire do forno Deixe esfriar

Troca de um pneu furado: Afrouxar ligeiramente as porcas Suspender o carro Retirar as porcas e o pneu Colocar o pneu reserva Apertar as porcas Abaixar o carro Dar o aperto nal nas porcas

Tomando um banho: Entrar no banheiro Tirar a roupa Abrir a torneira do chuveiro Entrar na gua a Ensaboar-se Sair da gua a Fechar a torneira Enxugar-se Vestir-se

Clculo da mdia de um aluno: a e Obter as suas 2 notas de provas Calcular a mdia aritmtica e e Se a mdia for maior que 7, e o aluno foi aprovado, seno ele foi reprovado a

Esta representaao pouco usada na prtica porque o uso da linguagem natural muitas c e a vezes d oportunidade a ms interpretaoes, ambigidades e imprecises. a a c u o Por exemplo, a instruao afrouxar ligeiramente as porcas no algoritmo da troca de c pneus est sujeita a interpretaoes diferentes por pessoas distintas. Uma instruao mais a c c precisa seria: afrouxar a porca, girando-a 30o no sentido anti-horrio. a

4.2.2

Fluxograma Convencional

E uma representaao grca de algoritmos onde formas geomtricas diferentes implic a e cam aoes (instrues, comandos) distintos. Tal propriedade facilita o entendimento das c co

idias contidas nos algoritmos e justica sua popularidade. e Esta forma aproximadamente intermediria ` descrio narrativa e ao pseudocdigo e a a ca o (subitem seguinte), pois menos imprecisa que a primeira e, no entanto, no se preocupa e a com detalhes de implementaao do programa, como o tipo das variveis usadas. c a Nota-se que os uxogramas convencionais preocupam-se com detalhes de n f vel sico da implementaao do algoritmo. Por exemplo, guras geomtricas diferentes so adotadas c e a para representar operaoes de sa de dados realizadas em dispositivos distintos, como c da uma ta magntica ou um monitor de v e deo. Como esta apostila no est interessada a a em detalhes f sicos da implementao, mas to somente com o n lgico das instruoes ca a vel o c do algoritmo, ser adotada a notaao simplicada da Fig. 28 para os uxogramas. De a c qualquer modo, o Apndice A contm uma tabela com os s e e mbolos mais comuns nos uxogramas convencionais.

Figura 28: Principais formas geomtricas usadas em uxogramas. e

De modo geral, um uxograma se resume a um unico s mbolo inicial por onde a execuao do algoritmo comea, e um ou mais s c c mbolos nais, que so pontos onde a a execuao do algoritmo se encerra. Partindo do s c mbolo inicial, h sempre um unico a caminho orientado a ser seguido, representando a existncia de uma unica seqncia de e ue execuao das instruoes. Isto pode ser melhor visualizado pelo fato de que, apesar de c c vrios caminhos poderem convergir para uma mesma gura do diagrama, h sempre um a a unico caminho saindo desta. Exceoes a esta regra so os s c a mbolos nais, dos quais no h a a nenhum uxo saindo, e os s mbolos de deciso, de onde pode haver mais de um caminho a

de sa (usualmente dois caminhos), representando uma bifurcaao no uxo. A Figura da c 29 mostra a representao do algoritmo de clculo da mdia de um aluno sob a forma de ca a e um uxograma.

Figura 29: Exemplo de um uxograma convencional.

4.2.3

Portugus Estruturado ou Pseudocdigo e o

Esta forma de representao de algoritmos rica em detalhes, como a deniao dos ca e c tipos das variveis usadas no algoritmo. Por assemelhar-se bastante ` forma em que os a a programas so escritos, encontra muita aceitaao. a c Na verdade, esta representao sucientemente geral para permitir a traduao de ca e c um algoritmo nela representado para uma linguagem de programao espec ca ca seja praticamente direta. A forma geral da representaao de um algoritmo na forma de pseudocdigo a sec o e guinte:

Programa <nome_do_programa>; {1. Denominaao do programa} c~ Variveis a {2. Declaraao e classificaao de variveis} c~ c~ a Constantes {3. Declaraao de constantes} c~ Incio {4. Incio do bloco principal} {5. Iniciar as variveis} a {6. Solicitar a entrada de dados ao usurio} a {7.Entrada de dados} {8. Processamento/Clculos} a {9. Sada de informa~es} co Fim {10. Final do bloco principal} Algoritmo uma palavra que indica o in da denio de um algoritmo em forma e cio ca de pseudocdigo. o nome do programa um nome simblico dado ao algoritmo com a nalidade de distinguie o los dos demais; Variveis consiste em uma porao opcional onde so declaradas as variveis globais a c a a usadas no algoritmo principal; In cio e Fim so respectivamente as palavras que delimitam o in a cio e o trmino do e conjunto de instrues do corpo do algoritmo. co O algoritmo do clculo da mdia de um aluno, na forma de um pseudocdigo, ca da a e o seguinte forma: Programa Calculo Media N1, N2, MEDIA: Real; Incio Leia(N1, N2); MEDIA (N1 + N2)/2; Se(MEDIA >= 7) ent~o a Escreva("Aprovado"); Sen~o a Escreva("Reprovado"); Fim Se Fim

4.3

Tipos de Dados

Todo o trabalho realizado por um computador baseado na manipulaao das ine c formaoes contidas em sua memria. Grosso modo, estas informaoes podem ser classic o c cadas em dois tipos: As instrues, que comandam o funcionamento da mquina e determinam a maneira co a como devem ser tratados os dados. As instruoes so espec c a cas para cada modelo de computador, pois so funoes do tipo particular de processador utilizado em sua a c implementao; ca Os dados propriamente ditos, que correspondem ` porao das informaes a serem a c co processadas pelo computador. O objetivo deste cap tulo justamente o de classicar os dados de acordo com o e tipo de informaao contida neles. A classicaao apresentada no se aplica a nenhuma c c a linguagem de programao espec ca ca; pelo contrrio, ela sintetiza os padres utilizados a o na maioria das linguagens.

4.3.1

Dados Numricos e

Antes de apresentar formalmente os tipos de dados numricos, conveniente recordar e e alguns conceitos bsicos relacionados ` teoria dos nmeros e conjuntos. a a u O conjunto dos nmeros naturais representado por N e dado por: u e e N = 0, 1, 2, 3, 4, (4.1)

Algumas correntes de matemticos tericos convencionam que o nmero 0 est contido a o u a neste conjunto; contudo, no convm perder tempo em tais discusses loscas, uma vez a e o o que isto no inuenciar de forma alguma este estudo. a a Na seqncia, encontramos o conjunto dos nmeros inteiros: ue u Z = , 3, 2, 1, 0, 1, 2, 3, (4.2)

O conjunto Z contm todos os elementos de N , bem como alguns nmeros que no pere u a tencem a N (os nmeros negativos e o zero). Portanto, dizemos que N est contido em u a Z.

Englobando o conjunto dos nmeros inteiros, existe o conjunto dos nmeros frau u cionrios (Q), dado pelo universo dos nmeros que podem ser expressos na forma de uma a u fraao, isto , um quociente onde o numerador e o denominador so nmeros inteiros. c e a u Mais formalmente: Q = p/q | (p, q) Z (4.3)

Por ultimo, surge o conjunto dos nmeros reais (R), formado pela unio do conjunto dos u a nmeros fracionrios Q com o conjunto dos nmeros que no podem ser expressos na forma u a u a de uma fraao (os nmeros irracionais). Ex.: 2 = 1, 41421356 . . ., = 3, 14159265 . . .. c u 4.3.1.1 Dados numricos inteiros e

Os nmeros inteiros so aqueles que no possuem componentes decimais ou frau a a cionrios, podendo ser positivos ou negativos. a Os elementos pertencentes aos conjuntos N e Z, apesar de serem representveis na a classe dos nmeros reais, so classicados como dados do tipo inteiro, por no possu u a a rem parte fracionria. Esta possibilidade interessante por permitir uma economia do espao a e c de memria, como veremos adiante. o Por sua vez, os elementos dos conjuntos Q e R, por possu rem parte fracionria, no a a podem ser representados na classe inteira, pertencendo necessariamente aos tipos de dados ditos reais. Tabela 3: Exemplos de nmeros inteiros. u
Exemplo 13 0 -397 Descrio ca Nmero inteiro positivo u Nmero inteiro u Nmero inteiro negativo u

4.3.1.2

Dados numricos reais e

Os dados de tipo real so aqueles que podem possuir componentes decimais ou fraa cionrios, e podem tambm ser positivos ou negativos. a e Como dito anteriormente, os elementos dos conjuntos de nmeros fracionrios e reais u a so necessariamente representados no computador por dados do tipo real. a Observe que h uma diferena entre 0, que um dado do tipo inteiro 0.0 (ou 0.) a c e

Tabela 4: Exemplos de nmeros reais. u


Exemplo 13.01 144 -1003.3 0.0 Descrio ca Nmero real positivo com duas casas decimais u Nmero real positivo u Nmero real negativo com uma casa decimal u Nmero real com uma casa decimal u

que um dado do tipo real. Portanto, a simples existncia do ponto decimal serve para e e diferenciar um dado numrico do tipo inteiro de um do tipo real. e

4.3.2

Dados Literais (Textos ou Letras)

O tipo de dados literal constitu por uma seqncia de caracteres contendo letras, e do ue d gitos e/ou s mbolos especiais. Este tipo de dados tambm muitas vezes chamado de e e alfanumrico, cadeia (ou cordo) de caracteres, string. e a Usualmente, os dados literais so representados nos algoritmos pela coleao de caraca c teres, delimitada em seu in e trmino com o caractere aspas (texto). cio e Tabela 5: Exemplos de dados do tipo literal.
Exemplo "QUAL ?" " " "qUaL ?!$" " AbCdefGHi" "1-2+3=" "0" Descrio ca Literal de comprimento Literal de comprimento Literal de comprimento Literal de comprimento Literal de comprimento Literal de comprimento 6 1 8 9 6 1

Note que, por exemplo, 1.2 representa um dado do tipo literal de comprimento 3, constitu pelos caracteres 1, . e 2, diferindo de 1.2 que um dado do tipo real. do e

4.3.3

Dados Lgicos o

A existncia deste tipo de dado , de certo modo, um reexo da maneira como os e e computadores funcionam. Muitas vezes, estes tipos de dados so chamados de booleanos, a devido ` signicativa contribuiao de Boole ` rea da lgica matemtica. a c aa o a O tipo de dados lgico usado para representar dois unicos valores lgicos poss o e o veis: verdadeiro e falso. E comum encontrar-se em outras referncias outros tipos de pares de e

valores lgicos como sim/n~o, 1/0 ou true/false. o a Nos algoritmos apresentados nesta apostila os valores lgicos sero delimitados pelo o a caractere ponto (.). Tabela 6: Exemplos de dados do tipo lgico. o
Exemplo V F Descrio ca Valor lgico (verdadeiro) o Valor lgico (falso) o

4.3.4

Exerc cios Propostos

Questo 01: Classique os dados especicados abaixo de acordo com seu tipo, assinaa lando com I os dados do tipo inteiro, com R os reais, com L os literais, com B os lgicos (booleanos), e com N aqueles para os quais no poss denir a priori o a e vel um tipo de dado. ( ( ( ( ( ( ) 0.21 )1 )W ) "0." ) 1% ( ( ( ( ( )T ) +3257 ) "a" ) "+3257" ) +3257. ) "-0.0" ( ( ( ( ( ( )V ) .V ) "abc" )F )C ) Maria ( ( ( ( ( ( ) 0,35 ) "F" ) +36 )q ) 3 ) -0.001

) "Jos" ( e

Você também pode gostar