Escolar Documentos
Profissional Documentos
Cultura Documentos
Algoritmo Estruturado
INTRODUO
A automatizao de tarefas um aspecto marcante da sociedade moderna. O
aperfeioamento tecnolgico alcanado, com respeito a isto, teve como elementos fundamentais a
anlise e a obteno de descries da execuo de tarefas em termos de aes simples o suficiente,
tal que pudessem ser automatizadas por uma mquina especialmente desenvolvida para este fim,
O COMPUTADOR.
Em cincia da computao houve um processo de desenvolvimento simultneo e interativo
de mquinas (hardware) e dos elementos que gerenciam a execuo automtica (software) de uma
dada tarefa. E essa descrio da execuo de uma tarefa, como considerada acima, chamada
algoritmo.
O objetivo desse curso a Lgica de Programao dando uma base terica e prtica,
suficientemente boa, para que, o aluno domine os algoritmos e esteja habilitado a aprender uma
linguagem de programao. Ser mostrado tambm um grupo de algoritmos clssicos para tarefas
cotidianas, tais como : ordenao e pesquisa.
DEFINIO DE ALGORITMO
Estrutura um Algoritmo
Algoritmo Nome_Do_Algoritmo
variveis
Declarao das variveis
Procedimentos
Declarao dos procedimentos
Funes
Declarao das funes
Incio
Corpo do Algoritmo
Fim
Identificadores
Representam os nomes escolhidos para rotular as variveis, procedimentos e funes,
normalmente, obedecem as seguintes regras :
1. O primeiro caracter deve ser uma letra
2. Os nomes devem ser formados por caracteres pertencentes ao seguinte conjunto :
{a,b,c,..z,A,B,C,...Z,0,1,2,...,9,_}
3. Os nomes escolhidos devem explicitar seu contedo.
Variveis:
Unidades bsicas de armazenamento das informaes a nvel de linguagens de programao. Os
tipos de dados e variveis utilizados dependem da finalidade dos algoritmos, mas, podemos
definir alguns, pelo fato de serem largamente utilizados e implementados na maioria das
linguagens, sendo estes:
INTEIRO : qualquer nmero inteiro, negativo, nulo ou positivo.
REAL : qualquer nmero real, negativo, nulo ou positivo.
CARACTER : qualquer conjunto de caracteres alfanumricos.
LGICO : tipo especial de varivel que armazena apenas os valores V e F, onde V representa
VERDADE e F FALSO
Declarao de variveis
Para que os programas manipulem valores, estes devem ser armazenados em variveis e para isso,
devemos declar-las de acordo com a sintaxe:
NomeVarivel,... : tipo
Operaes Bsicas:
Na soluo da grande maioria dos problemas necessrio que as variveis tenham seus valores
consultados ou alterados e, para isto, devemos definir um conjunto de OPERADORES, sendo
eles:
OPERADOR DE ATRIBUIO:
OPERADORES ARITMTICOS:
+ = Adio
* = Multiplicao
- = Subtrao ou inversor do sinal.
/ = Diviso
OPERADORES RELACIONAIS:
So utilizados para relacionar variveis ou expresses, resultando num valor lgico
(Verdadeiro ou Falso), sendo eles:
= - igual
- menor
- menor ou igual
- diferente
- maior
- maior ou igual
OPERADORES LGICOS:
So utilizados para avaliar expresses lgicas, sendo eles:
e - e lgico ou conjuno.
ou - ou lgico ou disjuno.
no - negao.
PRIORIDADE DE OPERADORES:
Durante a execuo de uma expresso que envolve vrios operadores, necessrio a existncia de
prioridades, caso contrrio poderemos obter valores que no representam o resultado esperado.
A maioria das linguagens de programao utiliza as seguintes prioridades de operadores :
1 - Efetuar operaes embutidas em parnteses "mais internos"
2 - Efetuar Funes
3 - Efetuar multiplicao e/ou diviso
4 - Efetuar adio e/ou subtrao
5 - Operadores Relacionais
6 - Operadores Lgicos
SEQUNCIA : usada para executar comandos passo a passo, sabendo que todos eles
sero executados na ordem de escrita, sem nenhum desvio. Uma sequncia pode possuir
um ou vrios comandos, os quais devem ser delimitados pelos identificadores Incio e
Fim.
Inicio
Comando_1
...
Comando_n
Fim
Simples
Se (Expresso Lgica)
Ento Sequncia_1
Composta
Se (Expresso Lgica)
Ento Sequncia_1
Seno Sequncia_2
TIPOS DE DADOS
Estruturas formadas por um conjunto de variveis, permitindo modelar de forma mais
natural os dados.
VETOR: estrutura formada por um conjunto unidimensional de dados de mesmo tipo
(homogneo) e possuindo nmero fixo de elementos (Esttico). Na declarao dos vetores
devemos informar o seu nome, seu tipo (inteiro, real, caracter, ...), e seu tamanho (nmero de
elementos). Cada elemento do vetor identificado por um ndice (unidimensional), o qual indica a
sua posio no vetor.
Declarao :
NomeDoVetor : vetor[n de elementos] de Tipo do Vetor
Referncia :
NomeDoVetor[ndice]
MATRIZ: estrutura semelhante ao vetor, sendo que, pode possuir n dimenses. Desta forma para
fazer referncia aos elementos de uma matriz, precisaremos de tantos ndices quanto for suas
dimenses.
Declarao :
NomeDaMatriz : matriz[dimenses] de Tipo da Matriz
Referncia :
NomeDaMatriz[ndices]
REGISTRO: estrutura formada por um conjunto de variveis, que podem possuir tipos diferentes
(Heterogneo), agrupadas em uma s unidade.
Declarao :
NomeDoRegistro : Registro
Declarao de Variveis
FimRegistro
Refernca :
NomeDoRegistro.NomeDaVarivel
Obs: Podemos ainda definir um vetor formado por registros.
MODULARIZAO
A modularizao consiste num mtodo para facilitar a construo de grandes programas,
atravs de sua diviso em pequenas etapas, que so : mdulos, rotinas, sub-rotinas ou subprogramas. Permitindo o reaproveitamento de cdigo, j que podemos utilizar um mdulo quantas
vezes for necessrio, eliminando assim a necessidade de escrever o mesmo cdigo em situaes
repetitivas.
Procedimentos - Um procedimento um bloco de cdigo precedido de um cabealho que contm
o Nome do procedimento e seus parmetros. Com isto, podemos fazer referncia ao bloco de
cdigo de qualquer ponto do algoritmo atravs do seu nome e passando os seus parmetros.
Declarao :
Procedimento NomeDoProcedimento [(parmetros)]
Variveis
Inicio
Comandos;
Fim;
Onde, parmetros representam as variveis que devem ser passadas ao procedimento. Os
parmetros podem ser de : ENTRADA (passado por valor) ou de ENTRADA/SADA (passado
por referncia). Os parmetros de ENTRADA no podem ser alterados pelo procedimento, para
que isso seja possvel o parmetro deve ser de ENTRADA/SADA Para indicar que um parmetro
de ENTRADA/SADA devemos colocar a palavra VAR antes da sua declarao.
Referncia :
NomeDoProcedimento(variveis)
OBS: As variveis passadas aos procedimentos so associadas aos parmetros do procedimento
de acordo com a ordem das variveis e da lista de parmetros.
Funes - Uma funo semelhante a um procedimento, sendo que esta deve retornar,
obrigatoriamente, um valor em seu nome, desta forma, necessrio declarar, no cabealho da
funo, qual o seu tipo.
Declarao :
Funo NomeDaFuno [(parmetros)] : tipo_da_funo
Variveis
Inicio
Comandos
NomeDaFuno (expresso de retorno)
Fim;
Referncia :
NomeDaFuno(parmetro)
ALGORTMOS DE PESQUISA
A capacidade de armazenar informaes foi um passo decisivo na evoluo da cincia da
computao e para o nvel generalizado de utilizao do computador. Com isso, a capacidade de
cuperar informaes, para posterior processamento, assume papel de suma importncia na
utilizao cotidiana do computador, existindo para isto inmeros exemplos, como: recuperao de
dados de dados de transaes bancrias de um cliente atravs de um nmero de conta, no cadastro
de cliente/operaes de um banco. Portanto, algortmos de pesquisa devem ser projetados de
forma a garantir a confiabilidade e eficincia exigidas pela importncia das aplicaes existentes.
A pesquisa de dados pode ser efetuada tanto em unidades de memria secundrias (disco
rgido, disquetes, fita), quanto na memria principal do computador.
PESQUISA SEQUENCIAL
O mtodo mais simples de determinar a presena, ou no, de um elemento numa
seqncia, percorr-la a partir do seu incio, efetuando comparaes, at que o elemento seja
encontrado ou o fim da seqncia seja alcanado. Este mtodo chamado de pesquisa seqencial.
Dados :
vetor de n elementos (n conhecido)
elemento a ser pesquisado no vetor
Resultado:
Se o elemento existe, mostra-se a sua posio ou o total de ocorrncias deste no vetor.
Se o elemento no existe, mostra-se uma mensagem de falha.
As consideraes que podem ser feitas sobre os dados de entrada (vetor), so do tipo: o
vetor esta ou no ordenado; o elemento ocorre uma nica vez (pesquisa nica) ou repetidas vezes
no vetor (pesquisa nica). Isso acarreta os seguintes tipos de pesquisa:
a. Desordenada nica
b. Desordenao Mltipla
c. Ordenada nica
d. Ordenada Mltipla
Pesquisa Binria
O mtodo de pesquisa seqencial fcil de escrever e razoavelmente eficientes para
seqncias com poucos elementos. Entretanto, para seqncias de tamanho considervel, que
ocorrem na maioria das aplicaes existentes, a utilizao do mtodo torna-se invivel. Uma
estratgia interessante e eficiente utilizada no mtodo de pesquisa binria.
Descrio Geral do Mtodo:
ALGORTMOS DE ORDENAO
Os problemas de ordenao so comuns tanto em aplicaes comerciais quanto cientficas.
Entretanto, raro so os problemas que se resumem pura ordenao de seqncias de elementos.
Normalmente, os problemas de ordenao so inseridos em problemas de pesquisa, intercalao e
atualizao. Isto torna ainda mais importante o projeto e a construo de algoritmos eficientes e
confiveis para tratar o problema.
O nosso objetivo analisar os seguintes tipos de ordenao :
a. Selection Sort
b. Bubble Sort
c. Insertion Sort
a. Selection Sort
Este mtodo um dos mais simples e intuitivos dentre os mtodos existentes. Sua
estratgia bsica selecionar o menor elemento da seqncia considerada e coloc-lo no incio da
seqncia. Assim, dada uma seqncia de tamanho n, vrias iteraes so efetuadas, sendo que a
cada vez que esta estratgia aplicada, uma nova seqncia gerada pela eliminao do menor
elemento da seqncia original.
RECURSIVIDADE
Recurso um mtodo geral para resolver problemas reduzindo-os a problemas mais
simples do mesmo tipo. A estrutura geral de uma soluo recursiva de um problema assim :
Resolva de forma recursiva um problema.
Bibliografia
INTRODUO AO DESENVOLVIMENTO DE ALGORITMOS
WILSON SILVA PINTO
ALGORITMOS
JOSE AUGUSTO MANZANO - JAYR FIGUEIREDO OLIVEIRA
ALGORITMOS E ESTRUTURAS DE DADOS
NIKLAUS WIRTH
ALGORITMOS E ESTRUTURAS DE DADOS
ANGELO DE MOURA GUIMARAES - NEWTON A C LAGES
ALGORITMOS ESTRUTURADOS
H FARREL - C G BECKER - E C FARIA e MATOS, H F
PROJETO DE ALGORITMOS
NIVIO ZIVIANI
11
12