Escolar Documentos
Profissional Documentos
Cultura Documentos
Autor:
Frano Giovani Mognon
Frano G. Mognon out/2005
UNIVERSIDADE DE PASSO FUNDO
Apostila de
Algoritmo Estruturado
LABORATRIO DE TERMO-FLUDOS
2
Frano G. Mognon out/2005
INTRODUO ................................................................................................................................4
DEFINIO DE ALGORITMO ..................................................................................................4
LINGUAGEM DE DESCRIO DE ALGORITMO (LDA) .........................................................4
Estrutura um Algoritmo ................................................................................................................5
Identificadores...................................................................................................................................5
Variveis: ......................................................................................................................................5
Declarao de variveis.................................................................................................................5
Operaes Bsicas:............................................................................................................................5
OPERADOR DE ATRIBUIO: ................................................................................................5
OPERADORES ARITMTICOS:................................................................................................6
OPERADORES RELACIONAIS:....................................................................................................6
OPERADORES LGICOS: .............................................................................................................6
PRIORIDADE DE OPERADORES:............................................................................................6
COMANDOS DE ENTRADA E SADA :.......................................................................................6
COMANDOS DE CONTROLE DE FLUXO: .................................................................................7
SEQUNCIA ....................................................................................................................7
SELEO.........................................................................................................................7
REPETIO.....................................................................................................................7
TIPOS DE DADOS...........................................................................................................................7
VETOR .....................................................................................................................................8
MATRIZ ...................................................................................................................................8
REGISTRO ...............................................................................................................................8
MODULARIZAO .......................................................................................................................8
Procedimentos ...........................................................................................................................8
Referncia .................................................................................................................................8
Funes .........................................................................................................................................9
ALGORTMOS DE PESQUISA ......................................................................................................9
PESQUISA SEQUENCIAL..........................................................................................................9
Pesquisa Binria ..........................................................................................................................10
ALGORTMOS DE ORDENAO ..............................................................................................10
RECURSIVIDADE.....................................................................................................................12
Bibliografia .....................................................................................................................................12
3
Frano G. Mognon out/2005
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
"O conceito central da programao e da Cincia da Computao o conceito de algoritmos, isto
, programar basicamente construir algoritmos."
a descrio, de forma lgica, dos passos a serem executados no cumprimento de determinada
tarefa.
"O algoritmo pode ser usado como uma ferramenta genrica para representar a soluo de
tarefas independente do desejo de automatiz-las, mas em geral est associado ao
processamento eletrnico de dados, onde representa o rascunho para programas (Software)."
"Serve como modelo para programas, pois sua linguagem intermediria linguagem humana e
s linguagens de programao, sendo ento, uma boa ferramenta na validao da lgica de
tarefas a serem automatizadas."
"Um algoritmo uma receita para um processo computacional e consiste de uma srie de
operaes primitivas, interconectadas devidamente, sobre um conjunto de objetos. Os objetos
manipulados por essas receitas so as variveis."
O algoritmo pode ter vrios nveis de abstraes de acordo com a necessidade de representar ou
encapsular detalhes inerentes s linguagens de programao. Ex: Certamente um algoritmo feito
com o objetivo de servir como modelo para uma linguagem de III gerao diferente daquele
para uma linguagem de IV gerao. Mas isso no impede que a ferramenta em si possa ser
usada em ambos o caso.
Como qualquer modelo, um algoritmo uma abstrao da realidade. A abstrao o processo de
identificar as propriedades relevantes do fenmeno que esta sendo modelado. Usando o modelo
abstrato, podemos nos centrar unicamente nas propriedades relevantes para ns, dependendo da
finalidade da abstrao, e ignorar as irrelevantes.
a forma pela qual descrevemos solues de problemas do nosso mundo, afim de, serem
implementadas utilizando os recursos do mundo computacional. Como este possu severas
limitaes em relao ao nosso mundo, exige que, sejam impostas algumas regras bsicas na
forma de solucionar os problemas, para que, possamos utilizar os recursos de hardware e
software disponveis. Pois, os algoritmos, apesar de servirem para representar a soluo de
qualquer problema, no caso do Processamento de Dados, eles devem seguir as regras bsicas
de programao para que sejam compatveis com as linguagens de programao.
4
Frano G. Mognon out/2005
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 :
O primeiro caracter deve ser uma letra
Os nomes devem ser formados por caracteres pertencentes ao seguinte conjunto:
{a,b,c,..z,A,B,C,...Z,0,1,2,...,9,_}
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:
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:
NomeDaVariavel Valor ou Expresso Atribuda.
5
Frano G. Mognon out/2005
OPERADORES ARITMTICOS:
FUNES PRIMITIVAS:
SEN(x); COS(x); TG(x); ABS(x); INT(x); Raiz(x); PI( );
OPERADORES RELACIONAIS:
So utilizados para relacionar variveis ou expresses, resultando num valor lgico (Verdadeiro ou
Falso), sendo eles:
= - igual - diferente
- menor - maior
- menor ou igual - 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 :
OBS: O programador tem plena liberdade para incluir novas variveis, operadores ou funes para
adaptar o algoritmo as suas necessidades, lembrando sempre, de que, estes devem ser compatveis com
a linguagem de programao a ser utilizada.
6
Frano G. Mognon out/2005
programao essa independncia no existe, ou seja, nas linguagens de programao temos comandos
especficos para cada tipo de unidade de Entrada/Sada.
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
SELEO: usada para tomar decises, ou seja desviar a execuo do algoritmo de acordo
com uma condio, podendo ser simples ou composta.
Simples Composta
Se (Expresso Lgica) Se (Expresso Lgica)
Ento Sequncia_1 Ento Sequncia_1
Seno Sequncia_2
REPETIO: Serve para efetuar um conjunto de aes repetidas vezes. Existem trs tipos
bsicos de repeties, sendo elas.
Enquanto (Expresso Lgica) faa O comando Enquanto analisa a Expresso Lgica e enquanto
Sequncia o seu resultado for, o valor lgico, Verdade a Sequncia
executada.
Para varivel valor_inicial at O comando Para incrementa, a varivel, a partir do
valor_final faa valor_inicial de uma unidade, at que, esta atinja o valor_final.
Sequncia E para cada incremento a Sequncia executada..
Repita O comando Repita executa a Sequncia at que o valor
Sequncia retornado pela Expresso Lgica seja Verdadeiro
At (Expresso Lgica)
TIPOS DE DADOS
7
Frano G. Mognon out/2005
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 sub-programas.
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.
Declarao :
Procedimento NomeDoProcedimento [(parmetros)]
Variveis
Inicio
Comandos;
Fim;
Referncia :
NomeDoProcedimento(variveis)
8
Frano G. Mognon out/2005
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 :
Resultado:
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
9
Frano G. Mognon out/2005
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.
Dados :
Resultado
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.
a. Selection Sort
b. Bubble Sort
c. Insertion Sort
10
Frano G. Mognon out/2005
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.
b. Bubble Sort
A estratgia utilizada pelo BubbleSort consiste de comparaes e trocas entre elementos
consecutivos da seqncia, a fim de "empurrar" o maior elemento para a ltima posio. Assim, vrias
iteraes so efetuadas e, para cada seqncia considerada, a aplicao da estratgia gera uma nova
seqncia pela eliminao do maior elemento da seqncia original.
Alm disto, uma varivel de controle (lgica) utilizada para registrar a ocorrncia ou no de troca
entre elementos da seqncia. Quando nenhuma troca efetuada, tem-se que a seqncia considerada
j estava ordenada. Esta particularidade determina, em alguns casos, um nmero menor de comparaes
que o mtodo SelectionSort.
11
Frano G. Mognon out/2005
c. Insertion Sort
Este mtodo baseia-se no seguinte processo de insero controlada:
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.
Um subprograma recursivo chama a si prprio constantemente, cada vez em uma situao mais
simples, at chegar ao caso trivial, quando pra. Devemos lembrar que recursividade deve ser utilizada na
soluo de problemas que tenham a natureza recursiva.
Bibliografia
INTRODUO AO DESENVOLVIMENTO DE ALGORITMOS
WILSON SILVA PINTO
ALGORITMOS
JOSE AUGUSTO MANZANO - JAYR FIGUEIREDO OLIVEIRA
ALGORITMOS ESTRUTURADOS
H FARREL - C G BECKER - E C FARIA e MATOS, H F
12