Variáveis Compostas Heterogêneas
(texto retirado do site tiexpert.net)
Estrutura de Dados - STRUCT
As estruturas de dados consistem em criar apenas um dado que contém vários membros, que nada mais são do que outras variáveis. De uma forma mais simples, é como se uma variável tivesse outras variáveis dentro dela. A vantagem em se usar estruturas de dados é que podemos agrupar de forma organizada vários tipos de dados diferentes, por exemplo, dentro de uma estrutura de dados podemos ter juntos tanto um tipo float, um inteiro, um char ou um double.
As variáveis que ficam dentro da estrutura de dados são chamadas de membros ou campos.
Criando uma estrutura de dados com STRUCT
struct nome_da_estrutura
{
tipo_de_dado nome_do_membro;
};
Por exemplo, se fossemos criar uma estrutura de dados para simbolizar uma data faríamos:
struct data
Por exemplo, se fossemos criar uma estrutura de dados para simbolizar uma data faríamos:
struct data
{
int dia;
int mes;
int ano;
};
int dia;
int mes;
int ano;
};
Declarando um struct e acessando seus membros
Após criarmos uma estrutura de dados com struct, poderemos utilizá-la como um tipo de dado comum (ex.: float, int, char). E para acessar seus membros utilizamos a variável declarada mais um ponto (.) e o nome do membro. Veja este exemplo abaixo:
#include <iostream>
#include <stdio.h>
#include <iostream>
#include <stdio.h>
using namespace std;
struct data
{
int dia;
int mes;
int ano;
};
int main ()
int dia;
int mes;
int ano;
};
int main ()
{
data hoje;
hoje.dia = 23;
hoje.mes = 9;
hoje.ano = 2008;
cout << "Hoje e " << hoje.dia << "/" << hoje.mes << "/" << hoje.ano << endl;
system ("pause");
}
Portanto, a variável hoje é declarada como sendo um tipo de dado data. Data é uma estrutura de dados que tem três características (ou três membros) inteiros: dia, mes e ano. Como hoje é um tipo de dado data, ele obtém os mesmos três membros. Para acessar cada membro, usamos a variável e depois o nome do membro que queremos acessar separados por ponto (.).
#include <iostream>
#include <stdio.h>
using namespace std;
struct regcliente //declaracao do registro
{
int numero, cep;
char nome[30], rua[30];
float saldo;
};
int main()
{
regcliente contas[5]; //declaracao da variavel contas do tipo registro
int i;
for (i = 0; i < 5; i++)
{
cout << "CONTA NUMERO " << i+1 << "\n\n";
cout << "Digite o nome: ";
cin >> contas[i].nome;
cout << "Digite o nome da rua: ";
cin >> contas[i].rua;
cout << "Digite o numero: ";
cin >> contas[i].numero;
cout << "Digite o CEP: ";
cin >> contas[i].cep;
cout << "Digite o saldo em R$: ";
cin >> contas[i].saldo;
system("cls");
}
for (i = 0; i < 5; i++)
{
cout << "CONTA NUMERO " << i+1 << "\n\n";
cout << "Nome: " << contas[i].nome << endl;
cout << "Rua: " << contas[i].rua << endl;
cout << "Numero: " << contas[i].numero << endl;
cout << "CEP: " << contas[i].cep << endl;
cout << "Saldo: R$ " << contas[i].saldo << endl;
cout << "\n\n";
system("PAUSE");
system("cls");
}
system("PAUSE");
}
data hoje;
hoje.dia = 23;
hoje.mes = 9;
hoje.ano = 2008;
cout << "Hoje e " << hoje.dia << "/" << hoje.mes << "/" << hoje.ano << endl;
system ("pause");
}
Portanto, a variável hoje é declarada como sendo um tipo de dado data. Data é uma estrutura de dados que tem três características (ou três membros) inteiros: dia, mes e ano. Como hoje é um tipo de dado data, ele obtém os mesmos três membros. Para acessar cada membro, usamos a variável e depois o nome do membro que queremos acessar separados por ponto (.).
Exercício 1 da aula de Algoritmo Estruturado de 23/05
Implementar o programa para ler e imprimir um vetor de 5 contas.
Algoritmo
Programa Contas
regcliente = registro
nome: literal
rua: literal
numero: inteiro
cep: inteiro
saldo: real
fim_registro
Declare contas: vetor[1..5] de regcliente
Declare i: inteiro
Inicio
Para i ← 1 até 5 Faça
Inicio_para
Leia (contas[i].nome)
Leia (contas[i].rua)
Leia (contas[i].numero)
Leia (contas[i].cep)
Leia (contas[i].saldo)
Fim_para
Para i ← 1 até 5 Faça
Inicio_para
Escreva (contas[i].nome)
Escreva (contas[i].rua)
Escreva (contas[i].numero)
Escreva (contas[i].cep)
Escreva (contas[i].saldo)
Fim_para
Fim
Código implementado no Dev-C++ 4.9.9.2
#include <stdio.h>
using namespace std;
struct regcliente //declaracao do registro
{
int numero, cep;
char nome[30], rua[30];
float saldo;
};
int main()
{
regcliente contas[5]; //declaracao da variavel contas do tipo registro
int i;
for (i = 0; i < 5; i++)
{
cout << "CONTA NUMERO " << i+1 << "\n\n";
cout << "Digite o nome: ";
cin >> contas[i].nome;
cout << "Digite o nome da rua: ";
cin >> contas[i].rua;
cout << "Digite o numero: ";
cin >> contas[i].numero;
cout << "Digite o CEP: ";
cin >> contas[i].cep;
cout << "Digite o saldo em R$: ";
cin >> contas[i].saldo;
system("cls");
}
for (i = 0; i < 5; i++)
{
cout << "CONTA NUMERO " << i+1 << "\n\n";
cout << "Nome: " << contas[i].nome << endl;
cout << "Rua: " << contas[i].rua << endl;
cout << "Numero: " << contas[i].numero << endl;
cout << "CEP: " << contas[i].cep << endl;
cout << "Saldo: R$ " << contas[i].saldo << endl;
cout << "\n\n";
system("PAUSE");
system("cls");
}
system("PAUSE");
}