Buscar

Aula 12 (1)

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Algoritmos
Ivaldo Donizeti Franco
ivaldo.franco@fatec.sp.gov.br  somente para envio de trabalhos.
Objetivo: Estudar o que vem a ser classificação de dados.
Conteúdos: Classificação de dados, Case.
Metodologia de Ensino: Aula teórica expositiva com exercícios em sala de aula e laboratório.
Recursos de Apoio: Quadro e projetor multimídia, laboratório.
Aula 12 
*
*
O que é Classificação de dados?
Processo, representado por um algoritmo especial, com o propósito de organizar um conjunto de informações contidos em uma estrutura de dados qualquer.
E para que serve?
Ordenar uma estrutura de dados:
 Ascendentemente
 Decrescentemente
Modelo Conceitual
*
*
Bolha	- Bubble Sort	~ n/c
Rápida	- Quick Sort	~ 1960
Intercalação	- Merge Sort	~ 1945
Seleção	- Selection Sort	~ n/c 
Inserção	- Insert Sort	~ n/c
Outros
 
Estes programas existem?
Embora o assunto requeira uma certa dose de paciência para correta compreensão, nota-se que a classificação de dados está presente em vários programas aplicativos em nosso dia-a-dia, p.e, no escritório encontramos sistemas de bancos de dados ou de planilhas de cálculo que nos oferecem estes mesmos mecanismos de classificação de dados programados em botões de função.
*
*
Classificação em bolhas.
Processo de percorrer o vetor diversas vezes empurrando para o inicio ou para o fim um determinado elemento na estrutura de dados. Várias são as versões porém o mais antigo case ainda prevalece, com alguns nuances encontramos rapidamente na internet algumas versões do mesmo algoritmo escrito de diversas formas e com linguagens diferentes.
Vamos carregar um vetor com dados para poder analisar a execução do algoritmo.
Neste caso especifico vamos utilizar um pequeno procedimento para carregar valores aleatórios no vetor.
algoritmo "Método Bolha“
var
maxVetor, minVetor, I, J : Inteiro
nomeT : caracter
vNomes: vetor [1..10] de caracter
vInicial: vetor [1..10] de caracter
procedimento CarregaValores
inicio
escreval ("Lista de números aleatórios iniciais")
escreval (" ")
Para I de 1 ate maxVetor passo 1 faca
 vNomes[I]  numPcarac(randi(maxVetor))
 vInicial[I]  vNomes [I]
 escreval (vInicial[I])
fimPara
fimprocedimento
*
*
Inicio	// Lógica principal
maxVetor  10					// Tamanho máximo do vetor
minVetor  maxVetor
CarregaValores
Para I de 1 ate maxVetor passo 1 faca
 Para J de 1 ate minVetor - 1 passo 1 faca
 Se vNomes[J+1] < vNomes[J] entao
 nomeT  vNomes[J]
 vNomes[J]  vNomes[J+1]
 vNomes[J+1]  nomeT
 fimSe
 escreval ("Valor de I é: ", I, " Valor de J é: ", J)
 fimPara
 escreval (" ")
minVetor  minVetor -1
fimPara
Para I de 1 ate maxVetor passo 1 faca
 escreval (vInicial[I], " - ", vNomes[I])
fimPara
fimAlgoritmo
*
*
V
F
BubbleSort
maxVetor  10
minVetor  
maxVetor
fimBubbleSort
Carrega
Valores
A
“Vetor Inicial,
Vetor Nomes”
1 ate miV-1
1 ate maxVetor
Valor de I, 
Valor de J””
vNome[J+1] <
vNomes[J]
nomeT 
vNomes[J]
vNomes[J] 
vNomes[J+1]
vNomes[J+1] 
nomeT
A
1 ate minVetor - 1
minVetor 
minVetor -1
Entendendo o funcionamento do algoritmo com a ajuda de um Diagrama de Blocos.
V
F
F
V
F
V
*
*
Comparação Modelo Conceitual X VisualG
Modelo Conceitual
		Seqüência		Números		1		2		3		4		5		6		7		8		9		10		Indice = I
		1
		2
		3
		4
		5
		6
		7
		8
		9
		10
		Indice = J
*
Exercícios em grupo

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais