Você está na página 1de 6

1.

Noo de algoritmo
Em portugus, a palavra algoritmo quer dizer operao ou processo de clculo, entre outras definies possveis (Dicionrio Brasileiro de Lngua Portuguesa, Mirador Internacional, Ed. 1977). Outra definio de algoritmo pode ser dada como a especificao da sequncia ordenada de passos que deve ser seguida para a realizao de uma tarefa, garantindo a sua repetibilidade. O algoritmo no a soluo do problema, mas sim o meio de obt-la. Surgem ento algumas questes: - Como se obter a soluo? R: Ela poder ser obtida por meio de um mtodo previamente conhecido, composto de operaes que, conjuntamente, levam ao fim desejado a partir do estado observado. - Quem obter a soluo? R: Para ns, diremos que a soluo ser obtida por um computador uma ferramenta capaz de executar diversas vezes e muito rapidamente algumas tarefas bem definidas. O nosso objectivo no fazer com que o computador trabalhe eternamente sobre um problema, talvez at insolvel em virtude do algoritmo proposto; queremos que a soluo seja obtida ou ento que sejamos avisados pela mquina de que o problema insolvel. Assim, um algoritmo deve ter um nmero finito de operaes executveis, num determinado perodo de tempo, e que consiga detectar a viabilidade de resolver o problema proposto. Podemos ento definir algoritmo da seguinte forma: um algoritmo uma sequncia ordenada e finita de operaes bem definidas e eficazes que, quando executadas por um computador termina sempre num determinado perodo de tempo e que produz uma soluo ou que indica que a soluo no pode ser obtida. Pela definio anterior podemos constatar que h uma primeira instruo e uma ltima instruo, ou seja, um algoritmo tem um princpio e um fim. Ao contrrio do que se possa pensar, o conceito de algoritmo no foi criado para satisfazer as necessidades da computao. Pelo contrrio, a programao de computadores apenas um dos campos de aplicao dos algoritmos. Na verdade, h inmeros casos que podem exemplificar o uso (involuntrio ou no) de algoritmos para a padronizao do exerccio de tarefas rotineiras.

___________________________________________ Algoritmos Carla Alves (Equiparada a Assistente do 2 Trinio)

-1-

Devemos sempre ponderar se todos os algoritmos propostos para a soluo de um dado problema so igualmente desejveis. Quase sempre existe mais do que uma maneira de resolver um problema, e essa escolha nossa. Qual ser ento a melhor das escolhas? Dados dois ou mais algoritmos para resolver o mesmo problema, sensato escolher aquele que obtm uma soluo no menor tempo possvel e que utiliza o menor espao para a representao dos dados do problema. Voltando ao contexto computacional, daqui em diante a ateno deste trabalho estar voltada para a automao de tarefas utilizando computadores. A automao um processo em que a tarefa deixa de ser desempenhada pelo homem e passa a ser realizada por mquinas. Para que a automao de uma tarefa seja bem sucedida necessrio que a mquina que passar a realiz-la seja capaz de desempenhar cada uma das etapas constituintes do processo a ser automatizado com eficincia, de modo a garantir a repetibilidade do mesmo. Assim, deve ser especificado com clareza e exactido o que deve ser realizado em cada uma das fases do processo a ser automatizado, bem como a sequncia em que estas fases devem ser realizadas. Para que um computador possa desempenhar uma tarefa necessrio que esta seja detalhada passo a passo, numa forma compreensvel pela mquina, utilizando aquilo que se chama de programa. Neste sentido, um programa de computador no mais do que um algoritmo escrito numa forma compreensvel pelo computador, ou seja, um algoritmo que diz ao computador os passos especficos e a ordem pela qual devem ser executados.

Assim, um algoritmo deve ter robustez, ou seja, um algoritmo deve contemplar todas as facetas possveis do problema que queremos resolver. Ao elaborar um algoritmo no devemos deixar que nenhum detalhe provoque um mau funcionamento do mesmo. Se conseguirmos construir um algoritmo robusto, qualquer mudana no problema ser controlada pelo algoritmo, ou seja, o algoritmo deve ser flexvel para mudanas. Um algoritmo deve ser correcto, ou seja, deve dar uma soluo para o problema e deve cumprir todos os requisitos propostos nos objectivos. Um algoritmo deve ser eficiente, isto , deve conseguir chegar aos objectivos propostos utilizando a menor quantidade de recursos possveis, ou seja, minimizando o uso da memria, de passos e de esforo humano.
___________________________________________ Algoritmos Carla Alves (Equiparada a Assistente do 2 Trinio) -2-

Diz-se que um algoritmo eficaz quando atinge o objectivo principal, ou seja, a anlise da resoluo do problema realiza-se prioritariamente. Pode dar-se o caso que exista um algoritmo eficaz mas no eficiente, na medida do possvel devemos tentar obter estes dois conceitos conjuntamente. Para conseguir resolver qualquer problema devem-se ter em ateno os seguintes passos: - Anlise do problema neste ponto define-se o problema, compreende-se e analisa-se com todo o detalhe. - Desenho do algoritmo neste ponto deve-se elaborar um algoritmo que reflicta passo a passo a resoluo do problema.

___________________________________________ Algoritmos Carla Alves (Equiparada a Assistente do 2 Trinio)

-3-

2. Representao de algoritmos
Existem diversas formas de representao de algoritmos, mas no h um consenso em relao melhor delas. O critrio utilizado para classificar hierarquicamente estas formas est directamente ligado ao nvel de detalhe ou, inversamente, ao grau de abstraco oferecido. Algumas das formas de representao de algoritmos tratam os problemas apenas ao nvel lgico, abstraindo-se de detalhes de implementao muitas vezes relacionados com uma linguagem de programao especfica. Por outro lado, existem formas de representao de algoritmos que possuem uma maior riqueza de detalhes que muitas vezes acabam por obscurecer a ideia principal, o algoritmo, dificultando o seu entendimento. Das formas de representao de algoritmos mais conhecidas destacamos: - a narrativa descritiva ou descrio narrativa; - o fluxograma convencional; - o pseudocdigo, tambm conhecido como linguagem estruturada ou portugol.

2.1. Narrativa descritiva


Nesta forma de representao os algoritmos so expressos directamente em linguagem natural. Vejamos os seguintes exemplos: - Receita de bolo: Misture os ingredientes Unte a forma com manteiga Despeje a mistura numa forma Se houver coco ralado ento despeje sobre a mistura Leve a forma ao forno Enquanto no corar deixe a forma no forno Retire do forno Deixe arrefecer - Tomar banho: Entrar na casa de banho e tirar a roupa Abrir a torneira do chuveiro Entrar na gua Ensaboar-se Fechar a torneira
___________________________________________ Algoritmos Carla Alves (Equiparada a Assistente do 2 Trinio) -4-

Sair da gua Enxugar-se Vestir-se - Clculo da mdia de um aluno: Obter as notas da primeira e da segunda provas Calcular a mdia aritmtica entre as duas Se a mdia for maior ou igual que 9,5, o aluno foi aprovado, seno foi reprovado No entanto, na prtica, esta representao pouco usada porque o uso da linguagem natural d muitas vezes oportunidade a ms interpretaes, ambiguidades e imprecises.

2.2. Fluxograma convencional


Um fluxograma uma representao grfica de algoritmos onde diferentes formas geomtricas implicam distintas aces (instrues, comandos). Tal propriedade facilita o entendimento das ideias contidas nos algoritmos. Esta forma de representao de algoritmos intermdia descrio narrativa e ao pseudocdigo, pois menos imprecisa que a primeira e, no entanto, no se preocupa com detalhes de implementao do programa, como, por exemplo, o tipo de variveis utilizadas. H vrios padres que definem as formas geomtricas das figuras e que devem ser usados para representar cada um dos diversos tipos de instrues; contudo, nenhum deles sobressai em relao aos demais no que diz respeito aceitao por parte dos usurios. Nos fluxogramas convencionais existe uma preocupao com os detalhes de nvel fsico da implementao do algoritmo. Por exemplo, diferentes figuras geomtricas so adoptadas para representar operaes de sada de dados realizadas em diferentes dispositivos, como uma fita magntica ou um monitor de vdeo. Segue-se uma lista das principais formas geomtricas usadas nos fluxogramas.
= Incio e final do fluxograma = Indica o sentido do fluxo de dados e conecta os smbolos existentes

ou

= Operao de entrada de dados

= Informaes recebidas ou fornecidas de ou por um computador


___________________________________________ Algoritmos Carla Alves (Equiparada a Assistente do 2 Trinio) -5-

= Operao de sada de dados em impressora

= Sada de dados em vdeo

= Informaes exibidas por dispositivos visuais, vdeo ou monitor = Utiliza-se para indicar clculos (algoritmos) a efectuar, atribuies de valores

= Bloco de deciso

Em geral, um fluxograma resume-se a um nico smbolo inicial, por onde comea a execuo do algoritmo, e um ou mais smbolos finais, que so pontos onde a execuo do algoritmo acaba. Partindo do smbolo inicial, h sempre um nico caminho orientado para ser seguido, que representa a nica sequncia de execuo das instrues. Excepes a esta regra so os smbolos finais, dos quais no sai nenhum fluxo, e os smbolos de deciso, dos quais pode haver sada de mais do que um caminho de sada (normalmente dois caminhos), que representam uma bifurcao no fluxo. Segue-se a representao do algoritmo do clculo da mdia de um aluno sob a forma de um fluxograma convencional.

.V.
9,5

___________________________________________ Algoritmos Carla Alves (Equiparada a Assistente do 2 Trinio)

-6-