Buscar

Aula 7 Estrutura de dados

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

Lógica de Programação
7
Estruturas de Dados
*
Objetivos
Ao final deste capítulo, você poderá:
Conceituar estruturas de dados
Enumerar as principais estruturas de dados existentes
Criar algoritmos e diagramas de bloco contendo estruturas de dados
*
Estruturas de dados
São estruturas que permitem armazenar múltiplos valores numa única variável
Para diferenciar os múltiplos valores guardados utiliza-se o conceito de índice, ou seja, o índice indica qual a informação desejada dentre as várias armazenadas
Tipos de estruturas de dados
VETOR
MATRIZ
REGISTRO
*
Estrutura de dados VETOR
É a estrutura de dados mais utilizada em algoritmos
Características
O índice de armazenamento é um número sempre iniciando pelo 0 (zero)
Todas as posições do vetor guardam o mesmo tipo de dados (homogeneidade)
As posições são independentes umas das outras
Também é conhecido por ARRAY
*
Estrutura de dados VETOR
Declaração:
<nome do vetor>: Vetor[0..<tamanho>-1] de <tipo>
Notas: Vetor[0..6] de Real
Atribuição:
<nome do vetor>[<índice>]  <valor>
Notas[1]  8,0
Utilização:
<nome do vetor>[<índice>]
Escreva(“3ª nota: ”,Notas[2])
*
Estrutura de dados VETOR
Declaração:
<tipo> <nome do vetor>[ tamanho]
float Notas[7] ;
Atribuição:
<nome do vetor>[<índice>] = <valor>
Notas[1] = 8,0
Utilização:
<nome do vetor>[<índice>]
printf(“3ª nota: %f ”,Notas[2]);
*
Estrutura de dados MATRIZ
É uma estrutura de dados muito utilizada
É uma generalização do VETOR
Características
Existem várias dimensões, cada uma com seu próprio índice, iniciando pelo 0 (zero)
Todas as posições da matriz (em todas as dimensões) guardam o mesmo tipo de dados (homogeneidade)
*
Estrutura de dados MATRIZ
Declaração:
<tipo> <nome>: [tamanho 1,<tamanho 2] 
Float NotasAluno [2,7]
Atribuição:
<nome>[<índice 1>,<índice 2>] = <valor>
Notas[0,1] = 8,0
Utilização:
<nome>[<índice 1>,<índice 1>]
printf(“3ª nota do 1º aluno: ”,Notas[0,2]);
*
Estrutura de dados REGISTRO
É uma estrutura de dados muito versátil
Características
O índice não é mais um número, agora é um nome (identificador da posição)
Existem várias dimensões como na matriz, cada uma com seu próprio índice
Cada posição do registro pode ter seu próprio tipo de dados (heterogeneidade)
*
Estrutura de dados REGISTRO
Declaração:
<nome>: REGISTRO 
		(<nome 1>: <tipo 1>,
		 <nome 2>: <tipo 2>,...)
Aluno: REGISTRO	(nome: Alfanumérico,
			 idade: Inteiro,
			 ingresso: Alfanumérico,
			 sexo: Alfanumérico,
			 media: Real)
Atribuição:
<nome>.<índice>  <valor>
Aluno.ingresso  “2002.1”
Utilização:
<nome>.<índice>
Escreva(“A média do aluno: ”,Aluno.media)
*
Exemplo de Estrutura de Dados
Problema nº 1: Identificar quais alunos de uma turma com 5 alunos ficaram acima da média da turma
	Algoritmo Alunos acima da media da turma
	Variáveis
		Notas: vetor[0..4] de Real {Vetor com índice nº do aluno}
		I: Inteiro {Contador de iterações}
		Soma, Media: Real {Soma das média e média da turma}
	Início
		Soma  0 {Inicialmente a soma da média dos alunos é 0}
		Para I de 0 até 4 Faça
			Leia (Notas[I])
			Soma  Soma + Notas[I] {Soma da média da turma}
		FimPara
		Media  Soma / 5 {Média da turma}
		Para I de 0 até 4 Faça
			Se (Notas[I] > Media) {
				Escreva(“Aluno nº”, I, “ está acima da média”)
			FimSe
		FimPara
	Fim
*
Exemplo de Estrutura de Dados
Problema nº 2: Identificar quais das 3 notas de 5 alunos de uma turma ficaram acima da média global da turma
	Algoritmo Alunos acima da media da turma com 3 notas cada
	Variáveis
		Notas: Vetor[0..4,0..2] de Real {Matriz com índice nº do aluno e da nota}
		I, J: Inteiro {Contador de iterações}
		SomaAluno, MediaAluno, SomaTurma, MediaTurma: Real
	Início
		SomaTurma  0 {Inicialmente a soma da média da turma é 0}
		Para I de 0 até 4 Faça {Loop nos alunos}
			SomaAluno  0 {Inicialmente a soma das avaliações do aluno é 0}
			Para J de 0 até 2 Faça {Loop nas avaliações}
				Leia (Notas[I,J])
				SomaAluno  SomaAluno + Notas[I,J] {Soma notas do aluno}
			FimPara
			MediaAluno  SomaAluno / 3 {Média do aluno}
			SomaTurma  SomaTurma + MediaAluno
		FimPara
		MediaTurma  SomaTurma / 5 {Média da turma}
		Para I de 0 até 4 Faça {Loop nos alunos}
			Para J de 0 até 2 Faça {Loop nas avaliações}
				Se (Notas[I,J] > MediaTurma) {
					Escreva(“Nota nº”,J,“Aluno nº”,I,“ está acima da média”)
				FimSe
			FimPara
		FimPara
	Fim
*
Exemplo de Estrutura de Dados
Problema nº 3: Identificar a idade média dos alunos do sexo masculino e a média das notas das meninas numa turma de 5 alunos.
	Algoritmo Idade media de meninos e nome das meninas acima turma
	Variáveis
		Aluno: Registro (nome: Alfanumérico, {Nome do aluno}
						idade: Inteiro, {Idade do aluno}
						sexo: Alfanumérico, {Sexo do aluno}
						nota: Real) {Nota do aluno}
		I: Inteiro {Contador de iterações}
		SomaIdade, NumHomens: Inteiro {Soma da idade e número de homens}
		SomaNotas, MediaNotas, MediaIdade: Real {Soma média, média turma, média idade}
	Início
		SomaNotas  0 {Inicialmente a soma das notas é 0}
		SomaIdade  0 {Inicialmente a soma das idades é 0}
		Para I de 0 até 4 Faça
			Leia (Aluno.nome)
			Leia (Aluno.idade)
			Leia (Aluno.sexo)
			Leia (Aluno.nota)
			Se (Alunos.sexo = “M”) Então {masculino}
				SomaIdade  SomaIdade + Aluno.idade {Soma das idades}
				NumHomens  NumHomens + 1
			Senão
				SomaNotas  SomaNotas + Aluno.nota {Soma das notas}
			FimPara
		FimPara
		MediaIdade  SomaIdade / (NumHomens) {Média das idades dos meninos}
		MediaNotas  SomaNotas / (5 - NumHomens) {Média das notas das meninas}
		Escreva (“A idade média dos meninos: ”,MediaIdade, “notas meninas: ”,MediaNotas)
	Fim
*
Sumário
Neste capítulo, você viu:
As estruturas de dados guardam múltiplas informações numa única variável
As principais estruturas de dados são VETOR, MATRIZ e REGISTRO
Exemplos de algoritmos contendo estruturas de dados
*
Exercícios de classe nº 6
1.	Fez-se a medição continuamente de voltagem e amperagem durante 15 vezes, num circuito. Crie um algoritmo que determine a voltagem média, a amperagem média, o consumo médio de energia e o consumo total de energia.
	Dica: Consumo = Voltagem * Amperagem
2.	Numa pesquisa com 50 funcionário de um departamento, perguntou-se idade, sexo e salário. Elabore um algoritmo que calcule:
	a)	média salarial
	b)	maior idade do sexo masculino
	c)	menor salário do sexo feminino
	d)	número de mulheres ganhando mais de $1.000

Teste o Premium para desbloquear

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

Outros materiais