Buscar

Roteiro Pratico 10 Registros

Prévia do material em texto

Roteiro Prático Nº 10 – Estruturas/Registros
1) Objetivos: Definir e apresentar registros com suas manipulações em pseudocódigo e na linguagem de 
programação C/C++. Registros são variáveis compostas heterogêneas, que também são chamados de 
estruturas.
2) Livro texto: 
ASCENCIO, A. F. G., CAMPOS, E. A. V. Fundamentos da Programação de Computadores (Algoritmos, 
Pascal, C/C++ e Java). 2 ed. São Paulo: Prentice-Hall, 2008.
3) Fundamentação Teórica :
a) Referência para consulta e estudos: Capítulo 10 do livro texto.
b) Definição: (Livro texto – seção 10.1)
Até o presente momento só foi possível a manipulação de coleção de dados do mesmo tipo, ou seja, quando 
se declara um vetor de inteiros, todos os seus elementos são desse tipo; o mesmo ocorre com matrizes.
Já com registros, também chamados de estruturas, é possível agregar informações de tipos diferentes, 
criando-se um novo tipo de dado. Um registro é, portanto, uma coleção de campos, em que cada campo pode 
ser de um tipo diferente. 
O conceito de registro visa facilitar o agrupamento de variáveis que não são do mesmo tipo, mas que guardam 
estreita relação lógica. O registro é um caso mais geral de variável composta na qual os elementos do 
conjunto não precisam ser, necessariamente, homogêneos ou do mesmo tipo (FARRER ET AL, 2008). 
Exemplo:
Registro FUNCIONARIO
− CÓDIGO: 102
− NOME: José da Silva
− SALÁRIO: 1654,34
− SEXO: M
FUNCIONÁRIO
CÓDIGO
NOME SALÁRIO SEXO
c) Declaração: A forma geral para se criar uma variável do tipo de dado registro é apresentada a seguir. 
Como acontece com qualquer outro tipo de dado, uma variável registro pode ser simples, um vetor ou uma 
matriz.
c.1) Sintaxe da declaração em Português Estruturado: 
 DECLARE nomeDaVariávelRegistro REGISTRO (nomeCampo1 TIPOCAMPO1, nomeCampo2 
TIPOCAMPO2, …, nomeCampoN TIPOCAMPON)
Exemplo 1: Pseudocódigo – VARIÁVEL SIMPLES REGISTRO
DECLARE funcionario REGISTRO (codigo, salario NUMÉRICO, nome, sexo LITERAL)
Neste exemplo, foi declarada uma variável chamada funcionario. Esta variável é um registro composto por 
quatro campos: codigo e salario numéricos, e nome e sexo literais.
UNIVERSIDADE FEDERAL DE ITAJUBÁ – UNIFEI – CAMPUS ITABIRA
BAC004 – TÉCNICAS DE PROGRAMAÇÃO
Professores: Claudia, Denílson, Fabiana, Fernando, Juliano,Natália, Raquel, Rodrigo, Sandro e Walter
Exemplo 2: Pseudocódigo – CONJUNTO DE REGISTROS
DECLARE funcionario[10] REGISTRO (codigo, salario NUMÉRICO, nome, sexo LITERAL)
Neste exemplo, foi declarado um vetor chamado funcionario de 10 posições. Em cada posição será 
armazenado um registro, composto por 4 campos: codigo e salario numéricos, e nome e sexo literais.
0
1
2
3
...
9
 
 funcionario[3]
CÓDIGO
NOME SALÁRIO SEXO
c.2) Sintaxe da declaração na linguagem C/C++:
struct TipoRegistro{ // primeiro cria-se o tipo de dado registro
 tipoCampo1 nomeCampo1;
 tipoCampo2 nomeCampo2;
 ...
 tipoCampon nomeCampon;
 };
 TipoRegistro nomeDaVariávelRegistro; /* depois declara-se a variável do tipo 
registro criado */
Exemplo 1: C/C++
struct TFunc{ // primeiro cria-se o tipo TFunc
 int codigo;
 float salario;
 char nome[30], 
 sexo;
 };
 TFunc funcionario; // depois, declara-se a variável funcionario do tipo TFunc
Exemplo 2: C/C++
struct TFunc{ // primeiro cria-se o tipo TFunc
 int codigo;
 float salario;
 char nome[30],
 sexo;
 };
 TFunc funcionario[10]; /* depois, declara-se um vetor chamado funcionario do 
tipo TFunc */
d) Acesso aos campos de um registro: Pelo fato do registro conter várias informações, para acessar um 
campo individualmente é necessário indicar o nome da variável e o nome do campo desejado, separados 
por um ponto.
Sintaxe do acesso aos campos em Português Estruturado e na linguagem C/C++: 
 nomeDaVariávelDoTipoRegistro.nomeDoCampo
 ponto
Exemplo 1: 
Pseudocódigo C/C++
funcionario.codigo ← 102 funcionario.codigo = 102;
Neste exemplo, o número 102 é inserido no campo codigo da variável registro chamada funcionario.
Exemplo 2: 
Pseudocódigo C/C++
funcionario[3].codigo ← 103 funcionario[3].codigo = 103;
Neste exemplo, o número 103 é inserido no campo codigo da quarta posição da variável registro 
chamada funcionario.
Exemplo 3: 
Pseudocódigo C/C++
ESCREVA conta[2, 1].num cout << conta[2][1].num;
Neste exemplo, imprime-se o valor do campo num, localizado na 3a. linha, 2a. coluna da variável registro 
chamada conta.
4) Exemplos usando registros de algoritmos em Português Estruturado e em C/C++:
a) Um produto possui código, nome, valor de custo e de venda. Assim, elabore um algoritmo em português 
estruturado que leia esses dados em um registro e calcule o lucro do produto.
Pseudocódigo C/C++
ALGORITMO 
 DECLARE produto REGISTRO (cod, valor_custo, 
valor_venda NUMÉRICO, nome LITERAL)
 DECLARE lucro NUMÉRICO
 
ESCREVA “DADOS DE UM PRODUTO”
ESCREVA “Entre com o código: ”
LEIA produto.cod
 ESCREVA “Entre com o nome: ”
LEIA produto.nome
 ESCREVA “Entre com o valor de custo: ”
LEIA produto.valor_custo
ESCREVA “Entre com o valor de venda: ”
LEIA produto.valor_venda
 lucro  produto.valor_venda – 
 produto.valor_custo
ESCREVA “O lucro é: ”
 ESCREVA lucro
FIM_ALGORITMO
#include<iostream>
using namespace std;
struct TProd{
 int cod;
 char nome[30];
 float valor_custo,
 valor_venda;
};
int main()
{
 TProd produto;
 float lucro;
 cout << "DADOS DE UM PRODUTO:\n\n";
 cout << "Entre com o código: ";
 cin >> produto.cod;
 fflush(stdin);
 cout << "Entre com o nome: ";
 gets(produto.nome);
 cout << "Entre com o valor de custo: ";
 cin >> produto.valor_custo;
 cout << "Entre com o valor de venda: ";
 cin >> produto.valor_venda;
 lucro = produto.valor_venda -
 produto.valor_custo;
 cout << "\nO lucro é: ";
 cout << lucro;
 
 system("pause > null");
 return 0; 
}
b) Dada a tabela a seguir:
CÓDIGO NOME
0 1000 ALFAIATE
1 1050 ALMOXARIFE
2 2000 ANALISTA
3 2050 ANTROPÓLOGO
4 3000 BOMBEIRO
5 3050 CARPINTEIRO
...
98 198050 TORNEIRO
99 199000 VENDEDOR
Escreva um algoritmo que leia a tabela acima e em seguida a imprima. 
Pseudocódigo C/C++
ALGORITMO 
 DECLARE profissoes[100] REGISTRO (cod 
NUMÉRICO, nome LITERAL)
 DECLARE i NUMÉRICO
 ESCREVA “ENTRADA DE DADOS DE 100 PROFISSÕES”
 PARA i ← 0 ATÉ 99 FAÇA
 INÍCIO
 ESCREVA i+1, "a. Profissão" 
ESCREVA “Entre com o código: ”
LEIA profissoes[i].cod
ESCREVA “Entre com o nome: ”
LEIA profissoes[i].nome 
 FIM
 ESCREVA “IMPRESSÃO DAS 100 PROFISSÕES”
 PARA i ← 0 ATÉ 99 FAÇA
 INÍCIO
 ESCREVA i+1, "a. Profissão:" 
ESCREVA “Código: ”
ESCREVA profissoes[i].cod
ESCREVA “Profissão: ”
ESCREVA profissoes[i].nome
 FIM 
FIM_ALGORITMO
#include<iostream>
using namespace std;
struct TProfissao{
 int cod;
 char nome[30];
};
int main()
{
 TProfissao profissoes[100];
 int i;
 cout << "ENTRADA DE DADOS DE 100
 PROFISSOES\n\n";
 for(i=0; i<100; i++)
 {
 cout << i+1 << "a. Profissão\n";
 cout << "Entre com o código: ";
 cin >> profissoes[i].cod;
 fflush(stdin);
 cout << "Entre com o nome: ";
 gets(profissoes[i].nome);
 }
 cout << "IMPRESSÃO DAS 100 PROFISSÕES\n\n";
 for(i=0; i<100; i++)
 {
 cout << i+1 << "a. Profissão\n";
 cout << "Código: " << profissoes[i].cod;
 cout << " Nome: " << profissoes[i].nome 
<< endl;
 }
 system("pause > null");
 return 0; 
}
5) Roteiro: 
a ) Faça um programa utilizando registro que leia apenas uma conta bancáriacom as seguintes informações: 
número da conta, nome do cliente e saldo. Apresente esses dados na tela. 
b ) Modifique o programa anterior para realizar o cadastro de apenas 15 contas e não pode haver mais de uma 
conta com o mesmo número. Observação: utilize um vetor de registros para guardar os dados.
c ) Modifique o programa anterior criando o menu de opções a seguir e implemente cada um deles:
1. Cadastrar uma conta
2. Visualizar todas as contas
3. Mostrar informações da conta com maior saldo
4. Mostrar informações da conta com menor saldo
5. Excluir uma conta
Se der tempo faça também....
 d ) Modifique o programa anterior criando tipos registros para Cliente e Endereço, conforme o esquema 
abaixo.
CONTA CLIENTE ENDEREÇO
Número nome rua
Saldo CPF número
Cliente Endereço cidade
estado
CEP
 e ) Modifique o programa anterior adicionando outras opções no menu:
• Mostrar os dados da conta de um dado cliente (passando seu CPF)
• Mostrar a quantidade de clientes de uma dada cidade

Continue navegando