Baixe o app para aproveitar ainda mais
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
Compartilhar