Buscar

Registro

Prévia do material em texto

Algoritmo e Estruturas de dados
Engenharia Elétrica
Registros
Vimos inúmeras aplicações onde são necessários conjuntos de elementos do mesmo tipo, e para tal utilizamos os vetores.
No entanto em alguns problemas há necessidade de definirmos conjuntos onde os elementos não sejam do mesmo tipo.
O registro é um conjunto de dados logicamente relacionados e é uma das principais estruturas de dados. Um registro consiste em trabalhar vários dados de tipos diferentes em uma mesma estrutura e por isso é considerado heterogêneo
Registros
Por exemplo, seja um registro constituído dos campos referentes aos dados de um aluno da universidade, tais como, número de matrícula, nome completo, idade, turma, período em que se encontra e média geral.
Exemplo:
var
	MAT:caracter
	NOME:caracter
	IDADE:inteiro
	TURMA:caracter
	PERIODO:inteiro
	MEDIA:real
Registros: sintaxe
Com base no exemplo anterior podemos extrair a estrutura geral para a declaração de um registro em português estruturado:
tipo <identificador> = registro
	<lista de campos e seus tipos>
Fimregistro
Var
	<variável> : <identificador>
Onde identificador é o nome do tipo registro
Registros: sintaxe
declaração de um registro em C++:
struct <identificador> {
	<lista de campos e seus tipos>
}
	 <identificador> <variável> ;
Onde identificador é o nome do tipo registro
Registros: sintaxe
Exemplo:
tipo reg_aluno = registro
	MAT:caracter
	NOME:caracter
	IDADE:inteiro
	TURMA:caracter
	PERIODO:inteiro
	MEDIA:real
Fimregistro
Var
	aluno:reg_aluno
Aluno:
Mat
Nome
Idade
Turma
Periodo
media
struct reg_aluno {
	char MAT;
	string NOME;
	int IDADE;
	string TURMA;
	int PERIODO;
	float MEDIA;
}
 reg_aluno aluno;
Registros: atribuição, leitura e escrita
Atribuição
<nome_reg [indice]>•<nome_campo> EXPRESSÃO;
<nome_reg>•<nome_campo>  EXPRESSÃO;
Exemplo: 
aluno•mat  000123
aluno•nome  “Jose”			
Leitura
leia(<nome_do_registro>[indice] •<nome_do_campo>);
leia(<nome_do_registro>•<nome_do_campo>);
Exemplo: 
leia(aluno•mat);
Leia(aluno•nome);
Escrita
escreva (<nome_do_registro>[indice]•<nome_do_campo>);
escreva (<nome_do_registro>•<nome_do_campo>);
Exemplo: 
escreva(aluno•mat)
Escreva(aluno•nome)
Para acessarmos um determinado campo de um registro devemos utilizar o operador “.”
Registros: Exemplo1
Algoritmo “exemplo1”
Tipo funcionario=registro
 nome:caractere;
 idade:inteiro;
 salario:real;
Fimregistro
Var
 f1:funcionario
Inicio
 escreva(“Informe nome do funcionario:”)
	leia(f1.nome)
 escreva(“Informe idade do funcionario:”)
 leia(f1.idade)
 escreva(“Informe salario do funcionario: “)
 leia(f1.salario)
 escreva(“Dados do funcionario”)
 escreva(“Nome=“,f1.nome,”Idade=“,f1.idade,”Salario=“,f1.salario)
fimalgoritmo 
Registros: Exemplo2 – utilizando vetor
Algoritmo “exemplo1”
Tipo funcionario=registro
 nome:caractere;
 idade:inteiro;
 salario:real;
Fimregistro
Var
 f1:vetor [1..5] de funcionario
 i:inteiro
Inicio
 para i de 1 ate 5 faca 
	 escreva(“Informe nome do funcionario:”)
	 leia(f1[i].nome)
 escreva(“Informe idade do funcionario:”)
 leia(f1[i].idade)
 escreva(“Informe salario do funcionario: “)
 leia(f1[i].salario)
 fimpara
 escreva(“Dados do funcionario”)
 para i de 1 ate 5 faca
 escreva(“Nome=“,f1[i].nome,”Idade=“,f1[i].idade,”Salario=“,f1[i].salario)
 fimpara
fimalgoritmo 
Demonstração do vetor
1
nome
idade
salario
2
nome
idade
salario
3
nome
idade
salario
4
nome
idade
salario
5
nome
idade
salario
Registros: Exemplo3 – Linguagem C++
#include <cstdlib>
#include <iostream>
using namespace std;
struct funcionario{
 int idade;
 string nome;
 float salario;
};
int main(int argc, char *argv[])
{
 funcionario f1;
 cout<<"\nInforme nome do funcionario:";
	cin>>f1.nome;
 cout<<"\nInforme idade do funcionario: ";
 cin>>f1.idade;
 cout<<"\nInforme salario do funcionario: ";
 cin>>f1.salario;
 cout<<"\nDados do funcionario";
 cout<<"\n Nome= "<<f1.nome<<" Idade= "<<f1.idade<<“Salario="<<f1.salario<<"\n";
 system("PAUSE");
 return EXIT_SUCCESS;
}
Registros: Exemplo4 – Linguagem C++
#include <cstdlib>
#include <iostream>
using namespace std;
struct funcionario{
 int idade;
 string nome;
 float salario;
};
int main(int argc, char *argv[])
{
 funcionario f1[5];
 int i;
 for(i=0;i<5;i++){
 cout<<"\nInforme nome do funcionario:";
	 cin>>f1[i].nome;
 cout<<"\nInforme idade do funcionario: ";
 cin>>f1[i].idade;
 cout<<"\nInforme salario do funcionario: ";
 cin>>f1[i].salario;
 };
 cout<<"\nDados do funcionario";
 for(i=0;i<5;i++){
 cout<<"\nNome= "<<f1[i].nome<<" Idade= "<<f1[i].idade<<" Salario= “<<f1[i].salario<<"\n";
 };
 system("PAUSE");
 return EXIT_SUCCESS;
}
Exercícios
Elabore um algoritmo para ler idade e altura de 15 atletas de uma equipe, calcular a média das idades e das alturas, e finalmente, exibir os dados lidos e as duas médias calculadas.
Escreva um algoritmo que crie uma estrutura para armazenar as informações dos alunos, cujos campos são: matricula, nome e 4 notas. O algoritmo deve efetuar a leitura das 4 notas bimestrais de 8 alunos e calcular a média das notas. 
Escreva um algoritmo que defina um registro para representar uma operação matemática. O registro deve armazenar dois números e um símbolo, que pode ser: + (adição), - (subtração), * (multiplicação), / (divisão), ^ (potenciação).

Continue navegando