SlideShare uma empresa Scribd logo
Registos
Escola Secundária Filipa deVilhena
 Conceito de Estruturas de Dados Compostas
 Vector vs Registo
 Declaração de Registos como tipo de dados
 Declaração de registos como variáveis
 Utilização de registos
 Combinação de registos com vectores
 Passagem de registos para funções
 Um tipo de dados estruturados que permite agrupar elementos de vários tipos
diferentes, sob a forma de campos, numa mesma estrutura.
 Estas estruturas são habitualmente designadas por registos (record).
 Exemplos:
Esta organização não o faz lembrar de nada??? Ai essa memória …
Então essas Bases de Dados … tabelas … campos … façamos esse exercício para os
exemplos acima.
Pessoa
Nome
Idade
Naturalidade
Profissão
Artigo
Código
Nome
Preço
Quantidade
Olhando para os exemplos anteriores, os campos daquelas estruturas têm todas os
mesmo tipo???Qual o tipo que atribuiria a cada um dos campos???
 Esta é A diferença entre vectores e estruturas: os tipos de dados …
 Vectores: elementos do mesmo tipo de dados
 Registos: elementos de diferentes tipos de dados
 Forma de acesso aos dados
 Declaração de registos como tipo de dados
struct nome_da_estrutura {
tipo_dados campo_1;
tipo_dados campo_2;
…………………
tipo_dados campo_n;
};
 Declaração de registos como variáveis
 No momento da criação da estrutura
struct nome_da_estrutura {
tipo_dados campo_1;
tipo_dados campo_2;
…………………
tipo_dados campo_n;
} var1, var2, …, varn;
 Posteriormente à criação da estrutura
nome_da_estrutura var1, var2, … varn;
Exemplo de declaração de estrutura (com declaração de variáveis):
Exemplo de declaração de variáveis:
Agora que sabe criar um estrutura …
haja confiança … coloca-se um
problema, mais um uma vez que já
eram poucos :o)
Como aceder a uma estrutura
(registo) ou campo dessa estrutura?
Muito simples, para aceder a:
Registo  var1  a1
Campo  var1.campo_1  a1.nome
#include <string.h>
#include <iostream>
using namespace std;
struct atleta {
char nome[30] ;
int idade ;
} a1, a2 ;
int main() {
a1.idade = 18 ;
cout << “Escreva o nome: “ ;
gets (a1.nome) ;
cout << a1.nome << “n’”;
strcpy (a2.nome, “Joana Lemos”) ;
a2.idade = a1.idade ;
a1 = a2 ;
cout << a1.nome << “t” ;
cout << a1.idade << “n” ;
system (“PAUSE”) ;
}
Atribuição de valor para o campo idade do atleta 1 (a1)
Leitura do campo nome do atleta 1 (a1)
Escrita do campo nome do atleta 1 (a1)
Cópia de “Joana Lemos” para o campo nome do atleta 2 (a2)
Atribuição entre
campos da
estrutura (idade
neste caso)
Cópia integral
(atribuição) das
variáveis de
estrutura e todos
os seus campos
Este é o estado em que se fica
quando se leva uma tareia de C++
É altura do faça você mesmo com um exemplo muito simples:
Implemente uma estrutura que guarde a data introduzida pelo utilizador e que no
final a apresente da seguinte forma:
Hoje e: Dia / Designação do Mês / Ano
Vejamos um exemplo:
Input:
Dia: 7
Mês: 6
Ano: 2011
Output:
Hoje e: 7 / Junho / 2011
Utilize uma função para fazer a correspondência entre:
Mês  Ano
1  Janeiro
2  Fevereiro
…
12  Dezembro
Será que percebeu mesmo??? Mesmo, mesmo, mesmo???
Vamos lá ver isso com mais uma actividade …
… é que é já a seguir.
Implemente uma estrutura semelhante àquela que representa a pessoa mas com o
nome aluno e respectivos campos (que ache específicos).Tenha em atenção os
seguintes aspectos:
 Um dos campos deve ser obrigatoriamente o campo: idade;
 Crie dois registos para aluno, em que deve ser pedido ao utilizador para
preencher toda a informação para cada um deles;
 Deve comparar a idade dos dois alunos e ar um dos seguintes resultados:
 <Nome Aluno 1> é mais novo;
 <Nome Aluno 2> é mais novo;
 Alunos têm a mesma idade.
Para dissipar mesmo todas as duvidas, parece que já vos ouço a pedir …
Só mais uma … só mais uma … e os vossos desejos são ordens … nada de exagerar.
Implemente uma estrutura que represente um artigo genérico e respectivos campos.
Tenha em atenção os seguintes aspectos:
 Deve ter pelo menos 3 campos obrigatório: nome, preço e quantidade;
 Crie dois registos para a estrutura artigo e peça ao utilizador para preencher todos
os campo;
 No final deve apresentar o valor em stock de cada um dos artigos;
Peguemos novamente na estrutura atleta, se não for muito pesada, utilizada
anteriormente … imagine que pretende criar o registo de dez atletas, como o
poderia fazer sem estar a recorrer a dez variáveis do tipo estrutura atleta???
Excelente raciocínio, ai se desse para utilizar o melhor de dois mundos …
… vectores … estruturas …
Tenho uma óptima noticia para vos dar, ou mesmo vender, é mesmo possível …
As estruturas podem funcionar como vectores. Como??? É só ver o slide seguinte …
Atleta 1 Atleta 2 Atleta 3 Atleta 4 Atleta 5 Atleta 6 Atleta 7 Atleta 8 Atleta 9 Atleta 10
Exemplo de declaração de um vector
Exemplo de declaração de estrutura (com declaração de um vector)
Sintaxe para referência de
vectores tipo registo:
 Para o registo como vector
var[ i ]
 Para o campo do registo
como vector
var[ i ].campo
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]
…
…
Implemente o seguinte programa completando-o e elabore o enunciado correspondente:
…
struct artigos {
char nome[30] ;
float preco, quant ;
} pretende-se registar no máximo 10 artigos
int main() {
int i;
for (i = 0; i < 10; i++) {
cout << “Dados relativos ao artigo “ << i+1<< “n” ;
cout << “Nome: “ ;
gets (guarda nome do artigo) ;
cout << “Preço: “ ;
cin >> guarda preço do artigo;
cout << “Quantidade: “ ;
cin >> guarda quantidade do artigo; }
for (i = 0; i < 10; i++) {
cout << “Valor em stock do artigo “ << i+1<< “: “;
cout << imprimir valor total deste artigo que ainda estão em stock << “n”;
}
system (“PAUSE”);
Actividade 5:
Aproveite a estrutura pessoa e proceda às alterações necessárias de forma a criar um
vetor de registos aluno. Elabore um programa que permita descobrir qual o nome do
aluno mais novo de uma turma de 19 alunos.
Actividade 6:
A partir de uma estrutura identifica, crie um vetor de registos pessoa.A estrutura deve
conter obrigatoriamente um campo sexo, de forma a poder implementar um programa
que proceda a alguns cálculos estatísticos, como por exemplo:
 Média de idades de pessoas do sexo feminino;
 Média de idades de pessoas do sexo masculino;
 …
Já que estamos a interligar matéria e não gostamos que ninguém se sinta
marginalizado, vamos ver como é que se podem passar estruturas para funções.
E pensam vocês, mas que grande confusão …
… nada disso, muito simples e com toda a lógica … ou não …
Que tal utilizar a estratégia “by example”, que vocês tanto gostam???
Antes disso, relembrar muito rapidamente o esquema genérico de uma função:
<tipo_dados> <nome_função>(tipo_argumentos argumentos, … ) {
<conjunto_de_instruções>
}
…
struct dados {
int idade ;
float peso;
} ;
int main() {
dados d1 ;
d1.idade = 17;
d1.peso = 70.5 ;
altera (d1) ;
cout << “Dentro de mainn”;
cout << “Idade: “ << d1.idade << “t” ;
cout << “Peso: “ << d1.peso << “t” ;
system (“PAUSE”) ;
}
Chamada à função altera
Com 1 argumento: d1 (estrutura)
Neste caso, a função altera recebe uma
estrutura do tipo dados em d … E não
retorna valores uma vez que apenas
escreve nos campos da própria estrutura.
void altera (dados d) {
d.idade ++ ;
d.peso = d.peso * 1.1 ;
cout << “Dentro da funçãon”;
cout << “Idade: “ << d.idade << “t”;
cout << “Peso: “ << d.peso << “t” ;
}
Depois de efectuadas as instruções
dentro da função, retorna ao mesmo local
no main() e continua …
Actividade 7:
No aproveitar é que está o ganho, aproveite a estrutura atleta e proceda às alterações
necessárias de forma a criar um vetor de registos jogador. Elabore um programa que
permita recolher informações como:
 Pesquisar jogador pelo seu número;
 Saber qual o jogador mais velho e mais novo e mais novo da equipa;
 Saber a média da altura dos jogadores;
 Média de pontos marcados pela equipa;
 …
Dica: Incluir em atleta os campos relativos aos pontos anteriores.
É preciso é confiança …

Mais conteúdo relacionado

Mais procurados

Curso De Algoritmo Aula 9
Curso De Algoritmo   Aula 9Curso De Algoritmo   Aula 9
Curso De Algoritmo Aula 9
Felipe Santos
 
53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i
Edvan Mateó
 
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
André Constantino da Silva
 
Conceitos e técnicas de programação lista de exercícios i
Conceitos e técnicas de programação lista de exercícios iConceitos e técnicas de programação lista de exercícios i
Conceitos e técnicas de programação lista de exercícios i
Robson Ferreira
 
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Kratos879
 

Mais procurados (17)

Curso De Algoritmo Aula 9
Curso De Algoritmo   Aula 9Curso De Algoritmo   Aula 9
Curso De Algoritmo Aula 9
 
Algoritmos - Pseudocódigo
Algoritmos - PseudocódigoAlgoritmos - Pseudocódigo
Algoritmos - Pseudocódigo
 
Algoritmos - Procedimentos
Algoritmos - ProcedimentosAlgoritmos - Procedimentos
Algoritmos - Procedimentos
 
53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i
 
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
 
Lógica De Programação
Lógica De ProgramaçãoLógica De Programação
Lógica De Programação
 
Conceitos e técnicas de programação lista de exercícios i
Conceitos e técnicas de programação lista de exercícios iConceitos e técnicas de programação lista de exercícios i
Conceitos e técnicas de programação lista de exercícios i
 
Java4
Java4Java4
Java4
 
Programação em C
Programação em CProgramação em C
Programação em C
 
Aula 3 algoritmos
Aula 3   algoritmosAula 3   algoritmos
Aula 3 algoritmos
 
Caderno de exercicios algoritmos-v.1.3
Caderno de exercicios   algoritmos-v.1.3Caderno de exercicios   algoritmos-v.1.3
Caderno de exercicios algoritmos-v.1.3
 
Aula 5 algoritimos(continuacao)
Aula 5   algoritimos(continuacao)Aula 5   algoritimos(continuacao)
Aula 5 algoritimos(continuacao)
 
Algoritmos 01 - Semana 03 - Exercícios de Leitura e Atribuição
Algoritmos 01 - Semana 03  - Exercícios de Leitura e AtribuiçãoAlgoritmos 01 - Semana 03  - Exercícios de Leitura e Atribuição
Algoritmos 01 - Semana 03 - Exercícios de Leitura e Atribuição
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registros
 
Java3
Java3Java3
Java3
 
Algoritmos - capítulo 6
Algoritmos - capítulo 6Algoritmos - capítulo 6
Algoritmos - capítulo 6
 
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
 

Destaque (18)

Correcção da ficha 4 e 5
Correcção da ficha 4 e 5Correcção da ficha 4 e 5
Correcção da ficha 4 e 5
 
Psi-mod-op2
Psi-mod-op2Psi-mod-op2
Psi-mod-op2
 
Módulo 2.1-componentes de um computador
Módulo 2.1-componentes de um computadorMódulo 2.1-componentes de um computador
Módulo 2.1-componentes de um computador
 
Módulo-2.2-estudo das componentes internas
Módulo-2.2-estudo das componentes internasMódulo-2.2-estudo das componentes internas
Módulo-2.2-estudo das componentes internas
 
Tic-excel-02
Tic-excel-02Tic-excel-02
Tic-excel-02
 
Tic-excel-01
Tic-excel-01 Tic-excel-01
Tic-excel-01
 
So-mod-1
So-mod-1So-mod-1
So-mod-1
 
Psi-mod-13
Psi-mod-13Psi-mod-13
Psi-mod-13
 
Modulo-3
Modulo-3 Modulo-3
Modulo-3
 
Tic-excel-03
Tic-excel-03Tic-excel-03
Tic-excel-03
 
Ac Mod 3 deteção de avarias - Esquemas
Ac  Mod 3 deteção de avarias - EsquemasAc  Mod 3 deteção de avarias - Esquemas
Ac Mod 3 deteção de avarias - Esquemas
 
So-mod-4
So-mod-4So-mod-4
So-mod-4
 
So-mod-2
So-mod-2So-mod-2
So-mod-2
 
M5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-WebM5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-Web
 
Módulo-2.3-estudo de periféricos e suas características e configuração
Módulo-2.3-estudo de periféricos e suas características e configuraçãoMódulo-2.3-estudo de periféricos e suas características e configuração
Módulo-2.3-estudo de periféricos e suas características e configuração
 
mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmia
 
Ac m3 correção das fichas 4,5 e 6
Ac m3   correção das fichas 4,5 e 6Ac m3   correção das fichas 4,5 e 6
Ac m3 correção das fichas 4,5 e 6
 
Psi-mod-15
Psi-mod-15Psi-mod-15
Psi-mod-15
 

Semelhante a mod5-estruturas-dadosdinamicas

ASP.Net Módulo 2
ASP.Net   Módulo 2ASP.Net   Módulo 2
ASP.Net Módulo 2
michellobo
 
As Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPontoAs Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPonto
Paulo Morgado
 

Semelhante a mod5-estruturas-dadosdinamicas (20)

Apostila aed
Apostila aedApostila aed
Apostila aed
 
Estruturas
EstruturasEstruturas
Estruturas
 
Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03
 
Desenvolvendo com Silverlight para WP7 Mango [Update]
Desenvolvendo com Silverlight para WP7 Mango [Update]Desenvolvendo com Silverlight para WP7 Mango [Update]
Desenvolvendo com Silverlight para WP7 Mango [Update]
 
Ed1
Ed1Ed1
Ed1
 
Linguagem R
Linguagem RLinguagem R
Linguagem R
 
ASP.Net Módulo 2
ASP.Net   Módulo 2ASP.Net   Módulo 2
ASP.Net Módulo 2
 
Java Desktop
Java DesktopJava Desktop
Java Desktop
 
Aula 7 pc - estrutura
Aula 7   pc - estruturaAula 7   pc - estrutura
Aula 7 pc - estrutura
 
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
 
Estrutura de Dados - Aula de revisão de c na prática
Estrutura de Dados - Aula de revisão de c na práticaEstrutura de Dados - Aula de revisão de c na prática
Estrutura de Dados - Aula de revisão de c na prática
 
6 estruturas de dados heterogêneas
6  estruturas de dados heterogêneas6  estruturas de dados heterogêneas
6 estruturas de dados heterogêneas
 
Maratona Windows Phone 7
Maratona Windows Phone 7Maratona Windows Phone 7
Maratona Windows Phone 7
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funções
 
Aula 7
Aula 7 Aula 7
Aula 7
 
As Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPontoAs Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPonto
 
DDD > Experiências
DDD > ExperiênciasDDD > Experiências
DDD > Experiências
 
04 - C# laços de repetição, vetores e matrizes v1.0
04 - C# laços de repetição, vetores e matrizes v1.004 - C# laços de repetição, vetores e matrizes v1.0
04 - C# laços de repetição, vetores e matrizes v1.0
 
Javascript Recuperando Dados De Formularios
Javascript    Recuperando Dados De FormulariosJavascript    Recuperando Dados De Formularios
Javascript Recuperando Dados De Formularios
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03
 

Último

5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
edjailmax
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
rarakey779
 
curso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdf
curso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdfcurso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdf
curso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdf
LeandroTelesRocha2
 

Último (20)

5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
 
Conteúdo sobre a formação e expansão persa
Conteúdo sobre a formação e expansão persaConteúdo sobre a formação e expansão persa
Conteúdo sobre a formação e expansão persa
 
Slides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptx
Slides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptxSlides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptx
Slides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptx
 
Sequência Didática - Cordel para Ensino Fundamental I
Sequência Didática - Cordel para Ensino Fundamental ISequência Didática - Cordel para Ensino Fundamental I
Sequência Didática - Cordel para Ensino Fundamental I
 
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdfProjeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
 
Junho Violeta - Sugestão de Ações na Igreja
Junho Violeta - Sugestão de Ações na IgrejaJunho Violeta - Sugestão de Ações na Igreja
Junho Violeta - Sugestão de Ações na Igreja
 
PowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básico
PowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básicoPowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básico
PowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básico
 
Curso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdf
Curso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdfCurso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdf
Curso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdf
 
Exercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdfExercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdf
 
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptx
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptxCIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptx
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptx
 
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxSlides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
 
Slide Novo UNID 1 2023.pptx de crescimento e desenvolvimento humano
Slide Novo UNID 1 2023.pptx de crescimento e desenvolvimento humanoSlide Novo UNID 1 2023.pptx de crescimento e desenvolvimento humano
Slide Novo UNID 1 2023.pptx de crescimento e desenvolvimento humano
 
curso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdf
curso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdfcurso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdf
curso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdf
 
Atividades-Sobre-o-Conto-Venha-Ver-o-Por-Do-Sol.docx
Atividades-Sobre-o-Conto-Venha-Ver-o-Por-Do-Sol.docxAtividades-Sobre-o-Conto-Venha-Ver-o-Por-Do-Sol.docx
Atividades-Sobre-o-Conto-Venha-Ver-o-Por-Do-Sol.docx
 
Apresentação de vocabulário fundamental em contexto de atendimento
Apresentação de vocabulário fundamental em contexto de atendimentoApresentação de vocabulário fundamental em contexto de atendimento
Apresentação de vocabulário fundamental em contexto de atendimento
 
Caderno de Estudo Orientado para Ensino Médio
Caderno de Estudo Orientado para Ensino MédioCaderno de Estudo Orientado para Ensino Médio
Caderno de Estudo Orientado para Ensino Médio
 
Fotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anosFotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anos
 
Os Padres de Assaré - CE. Prof. Francisco Leite
Os Padres de Assaré - CE. Prof. Francisco LeiteOs Padres de Assaré - CE. Prof. Francisco Leite
Os Padres de Assaré - CE. Prof. Francisco Leite
 
curso-de-direito-constitucional-gilmar-mendes.pdf
curso-de-direito-constitucional-gilmar-mendes.pdfcurso-de-direito-constitucional-gilmar-mendes.pdf
curso-de-direito-constitucional-gilmar-mendes.pdf
 

mod5-estruturas-dadosdinamicas

  • 2.  Conceito de Estruturas de Dados Compostas  Vector vs Registo  Declaração de Registos como tipo de dados  Declaração de registos como variáveis  Utilização de registos  Combinação de registos com vectores  Passagem de registos para funções
  • 3.  Um tipo de dados estruturados que permite agrupar elementos de vários tipos diferentes, sob a forma de campos, numa mesma estrutura.  Estas estruturas são habitualmente designadas por registos (record).  Exemplos: Esta organização não o faz lembrar de nada??? Ai essa memória … Então essas Bases de Dados … tabelas … campos … façamos esse exercício para os exemplos acima. Pessoa Nome Idade Naturalidade Profissão Artigo Código Nome Preço Quantidade
  • 4. Olhando para os exemplos anteriores, os campos daquelas estruturas têm todas os mesmo tipo???Qual o tipo que atribuiria a cada um dos campos???  Esta é A diferença entre vectores e estruturas: os tipos de dados …  Vectores: elementos do mesmo tipo de dados  Registos: elementos de diferentes tipos de dados  Forma de acesso aos dados  Declaração de registos como tipo de dados struct nome_da_estrutura { tipo_dados campo_1; tipo_dados campo_2; ………………… tipo_dados campo_n; };
  • 5.  Declaração de registos como variáveis  No momento da criação da estrutura struct nome_da_estrutura { tipo_dados campo_1; tipo_dados campo_2; ………………… tipo_dados campo_n; } var1, var2, …, varn;  Posteriormente à criação da estrutura nome_da_estrutura var1, var2, … varn;
  • 6. Exemplo de declaração de estrutura (com declaração de variáveis): Exemplo de declaração de variáveis: Agora que sabe criar um estrutura … haja confiança … coloca-se um problema, mais um uma vez que já eram poucos :o) Como aceder a uma estrutura (registo) ou campo dessa estrutura? Muito simples, para aceder a: Registo  var1  a1 Campo  var1.campo_1  a1.nome
  • 7. #include <string.h> #include <iostream> using namespace std; struct atleta { char nome[30] ; int idade ; } a1, a2 ; int main() { a1.idade = 18 ; cout << “Escreva o nome: “ ; gets (a1.nome) ; cout << a1.nome << “n’”; strcpy (a2.nome, “Joana Lemos”) ; a2.idade = a1.idade ; a1 = a2 ; cout << a1.nome << “t” ; cout << a1.idade << “n” ; system (“PAUSE”) ; } Atribuição de valor para o campo idade do atleta 1 (a1) Leitura do campo nome do atleta 1 (a1) Escrita do campo nome do atleta 1 (a1) Cópia de “Joana Lemos” para o campo nome do atleta 2 (a2) Atribuição entre campos da estrutura (idade neste caso) Cópia integral (atribuição) das variáveis de estrutura e todos os seus campos Este é o estado em que se fica quando se leva uma tareia de C++
  • 8. É altura do faça você mesmo com um exemplo muito simples: Implemente uma estrutura que guarde a data introduzida pelo utilizador e que no final a apresente da seguinte forma: Hoje e: Dia / Designação do Mês / Ano Vejamos um exemplo: Input: Dia: 7 Mês: 6 Ano: 2011 Output: Hoje e: 7 / Junho / 2011 Utilize uma função para fazer a correspondência entre: Mês  Ano 1  Janeiro 2  Fevereiro … 12  Dezembro
  • 9. Será que percebeu mesmo??? Mesmo, mesmo, mesmo??? Vamos lá ver isso com mais uma actividade … … é que é já a seguir. Implemente uma estrutura semelhante àquela que representa a pessoa mas com o nome aluno e respectivos campos (que ache específicos).Tenha em atenção os seguintes aspectos:  Um dos campos deve ser obrigatoriamente o campo: idade;  Crie dois registos para aluno, em que deve ser pedido ao utilizador para preencher toda a informação para cada um deles;  Deve comparar a idade dos dois alunos e ar um dos seguintes resultados:  <Nome Aluno 1> é mais novo;  <Nome Aluno 2> é mais novo;  Alunos têm a mesma idade.
  • 10. Para dissipar mesmo todas as duvidas, parece que já vos ouço a pedir … Só mais uma … só mais uma … e os vossos desejos são ordens … nada de exagerar. Implemente uma estrutura que represente um artigo genérico e respectivos campos. Tenha em atenção os seguintes aspectos:  Deve ter pelo menos 3 campos obrigatório: nome, preço e quantidade;  Crie dois registos para a estrutura artigo e peça ao utilizador para preencher todos os campo;  No final deve apresentar o valor em stock de cada um dos artigos;
  • 11. Peguemos novamente na estrutura atleta, se não for muito pesada, utilizada anteriormente … imagine que pretende criar o registo de dez atletas, como o poderia fazer sem estar a recorrer a dez variáveis do tipo estrutura atleta??? Excelente raciocínio, ai se desse para utilizar o melhor de dois mundos … … vectores … estruturas … Tenho uma óptima noticia para vos dar, ou mesmo vender, é mesmo possível … As estruturas podem funcionar como vectores. Como??? É só ver o slide seguinte … Atleta 1 Atleta 2 Atleta 3 Atleta 4 Atleta 5 Atleta 6 Atleta 7 Atleta 8 Atleta 9 Atleta 10
  • 12. Exemplo de declaração de um vector Exemplo de declaração de estrutura (com declaração de um vector) Sintaxe para referência de vectores tipo registo:  Para o registo como vector var[ i ]  Para o campo do registo como vector var[ i ].campo a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] … …
  • 13. Implemente o seguinte programa completando-o e elabore o enunciado correspondente: … struct artigos { char nome[30] ; float preco, quant ; } pretende-se registar no máximo 10 artigos int main() { int i; for (i = 0; i < 10; i++) { cout << “Dados relativos ao artigo “ << i+1<< “n” ; cout << “Nome: “ ; gets (guarda nome do artigo) ; cout << “Preço: “ ; cin >> guarda preço do artigo; cout << “Quantidade: “ ; cin >> guarda quantidade do artigo; } for (i = 0; i < 10; i++) { cout << “Valor em stock do artigo “ << i+1<< “: “; cout << imprimir valor total deste artigo que ainda estão em stock << “n”; } system (“PAUSE”);
  • 14. Actividade 5: Aproveite a estrutura pessoa e proceda às alterações necessárias de forma a criar um vetor de registos aluno. Elabore um programa que permita descobrir qual o nome do aluno mais novo de uma turma de 19 alunos. Actividade 6: A partir de uma estrutura identifica, crie um vetor de registos pessoa.A estrutura deve conter obrigatoriamente um campo sexo, de forma a poder implementar um programa que proceda a alguns cálculos estatísticos, como por exemplo:  Média de idades de pessoas do sexo feminino;  Média de idades de pessoas do sexo masculino;  …
  • 15. Já que estamos a interligar matéria e não gostamos que ninguém se sinta marginalizado, vamos ver como é que se podem passar estruturas para funções. E pensam vocês, mas que grande confusão … … nada disso, muito simples e com toda a lógica … ou não … Que tal utilizar a estratégia “by example”, que vocês tanto gostam??? Antes disso, relembrar muito rapidamente o esquema genérico de uma função: <tipo_dados> <nome_função>(tipo_argumentos argumentos, … ) { <conjunto_de_instruções> }
  • 16. … struct dados { int idade ; float peso; } ; int main() { dados d1 ; d1.idade = 17; d1.peso = 70.5 ; altera (d1) ; cout << “Dentro de mainn”; cout << “Idade: “ << d1.idade << “t” ; cout << “Peso: “ << d1.peso << “t” ; system (“PAUSE”) ; } Chamada à função altera Com 1 argumento: d1 (estrutura) Neste caso, a função altera recebe uma estrutura do tipo dados em d … E não retorna valores uma vez que apenas escreve nos campos da própria estrutura. void altera (dados d) { d.idade ++ ; d.peso = d.peso * 1.1 ; cout << “Dentro da funçãon”; cout << “Idade: “ << d.idade << “t”; cout << “Peso: “ << d.peso << “t” ; } Depois de efectuadas as instruções dentro da função, retorna ao mesmo local no main() e continua …
  • 17. Actividade 7: No aproveitar é que está o ganho, aproveite a estrutura atleta e proceda às alterações necessárias de forma a criar um vetor de registos jogador. Elabore um programa que permita recolher informações como:  Pesquisar jogador pelo seu número;  Saber qual o jogador mais velho e mais novo e mais novo da equipa;  Saber a média da altura dos jogadores;  Média de pontos marcados pela equipa;  … Dica: Incluir em atleta os campos relativos aos pontos anteriores. É preciso é confiança …