Professional Documents
Culture Documents
Algoritmo Estruturado
UNIVERSIDADE TIRADENTES
DEFINIO DE ALGORITMO
2
ApostiladeAlgoritmoEstruturado
Para escrevermos algoritmos preciso uma linguagem clara e que no deixe margem a
ambiguidades, para isto, devemos definir uma sintaxe e uma semntica, de forma a permitir uma
nica interpretao das instrues num 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
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
3
ApostiladeAlgoritmoEstruturado
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:
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 :
4
ApostiladeAlgoritmoEstruturado
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.
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 Composta
Se (Expresso Lgica) Se (Expresso Lgica)
Ento Sequncia_1 Ento Sequncia_1
Seno Sequncia_2
5
ApostiladeAlgoritmoEstruturado
REPETIO : Serve para efetuar um conjunto de aes repetidas vezes. Existem trs tipos
bsicos de repeties, sendo elas.
TIPOS DE DADOS
Estruturas formadas por um conjunto de variveis, permitindo modelar de forma mais
natural os dados.
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.
6
ApostiladeAlgoritmoEstruturado
MODULARIZAO
Declarao :
Procedimento NomeDoProcedimento [(parmetros)]
Variveis
Inicio
Comandos;
Fim;
Referncia :
NomeDoProcedimento(variveis)
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)
7
ApostiladeAlgoritmoEstruturado
ALGORTMOS DE PESQUISA
PESQUISA SEQUENCIAL
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
b. Desordenao Mltipla
c. Ordenada nica
d. Ordenada Mltipla
Pesquisa Binria
8
ApostiladeAlgoritmoEstruturado
Caso sejam iguais ento terminou as pesquisa
Caso contrrio definir o novo intervalo de busca
Aplicar sucessivamente o passo anterior at encontrar E ou no existir mais o intervalo de
busca
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
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.
9
ApostiladeAlgoritmoEstruturado
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.
c. Insertion Sort
Este mtodo baseia-se no seguinte processo de insero controlada:
10
ApostiladeAlgoritmoEstruturado
Com o primeiro elemento da seqncia forma-se uma seqncia de tamanho 1, ordenada.
Cada elemento restante da seqncia original inserido na seqncia, de modo que esta
permanea ordenada. Isto feito atravs de uma pesquisa na seqncia ordenada que
determina a posio que o novo elemento dever ser inserido.
Quando um elemento inserido a frente de outro, estes devero ser deslocados de uma
posio.
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.
Exemplos :
a. Somatrio de inteiros - Se n =1; Somatrio = 1. Caso contrrio Somatrio = n +
Somatrio(n-1)
b. Fatorial - Se n=0 ou n=1 ; Fatorial = 1. Caso contrrio Fatorial = n*Fatorial(n-1)
c. MDC - Se b divide a, ento o MDC b. Caso contrrio, MDC(a,b) = MDC(b,a mod b)
d. N-simo termo da srie de Finonacci . 1 e 2 = 1 e n-simo = (n-1)+(n-2)
e. Torre de hanoi
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
PROJETO DE ALGORITMOS
NIVIO ZIVIANI
11
ApostiladeAlgoritmoEstruturado
12