SlideShare a Scribd company logo
1 of 17
Download to read offline
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 …

More Related Content

What's hot

Curso De Algoritmo Aula 9
Curso De Algoritmo   Aula 9Curso De Algoritmo   Aula 9
Curso De Algoritmo Aula 9Felipe Santos
 
53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-iEdvan 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 iRobson Ferreira
 
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.3Débora Inocêncio
 
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çãoEder Samaniego
 
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 registrosMauro Pereira
 
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
 

What's hot (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”
 

Viewers also liked

Psi-mod-op2
Psi-mod-op2Psi-mod-op2
Psi-mod-op2diogoa21
 
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 computadordiogoa21
 
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 internasdiogoa21
 
Tic-excel-02
Tic-excel-02Tic-excel-02
Tic-excel-02diogoa21
 
Tic-excel-01
Tic-excel-01 Tic-excel-01
Tic-excel-01 diogoa21
 
Psi-mod-13
Psi-mod-13Psi-mod-13
Psi-mod-13diogoa21
 
Tic-excel-03
Tic-excel-03Tic-excel-03
Tic-excel-03diogoa21
 
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 - Esquemasfilipereira
 
M5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-WebM5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-Webdiogoa21
 
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çãodiogoa21
 
mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmiadiogoa21
 
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 6Caniggia123
 
Psi-mod-15
Psi-mod-15Psi-mod-15
Psi-mod-15diogoa21
 

Viewers also liked (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
 

Similar to mod5-estruturas-dadosdinamicas

Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03thomasdacosta
 
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]Felipe Pimentel
 
ASP.Net Módulo 2
ASP.Net   Módulo 2ASP.Net   Módulo 2
ASP.Net Módulo 2michellobo
 
Java Desktop
Java DesktopJava Desktop
Java Desktopciceroclc
 
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,...Leinylson Fontinele
 
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áticaLeinylson Fontinele
 
Maratona Windows Phone 7
Maratona Windows Phone 7Maratona Windows Phone 7
Maratona Windows Phone 7Felipe Pimentel
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funçõesCarla Lee
 
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 - NetPontoPaulo Morgado
 
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.0César Augusto Pessôa
 
Javascript Recuperando Dados De Formularios
Javascript    Recuperando Dados De FormulariosJavascript    Recuperando Dados De Formularios
Javascript Recuperando Dados De Formulariosguestd9e271
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Natanael Fonseca
 

Similar to 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
 

Recently uploaded

PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãIlda Bicacro
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSOLeloIurk1
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTailsonSantos1
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfWagnerCamposCEA
 
atividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfatividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfLuizaAbaAba
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfGEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfRavenaSales1
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 

Recently uploaded (20)

PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
 
atividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfatividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdf
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfGEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 

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 …