SlideShare uma empresa Scribd logo
Estruturas em C/C++
struct
Prof. Márcio Roberto Rizzatto
Laboratório de Programação II
Ciência da Computação
FAI
Laboratório de Programação II
© Prof. Márcio Roberto Rizzatto Laboratório de Programação II
Revisão Rápida
Qual a diferença entre um
algoritmo e um programa?
© Prof. Márcio Roberto Rizzatto Laboratório de Programação II
Revisão Rápida
 Algoritmo
 Sequência de ações executáveis para a solução
de um determinado tipo de problema
 Exemplo: “Receita de Bolo”
 Em geral, algoritmos trabalham sobre
Estruturas de Dados
 Estruturas de Dados
 Conjunto de dados que representa uma situação
real
 Abstração da realidade
 Estruturas de Dados e Algoritmos estão
intimamente ligados
© Prof. Márcio Roberto Rizzatto Laboratório de Programação II
Revisão Rápida
 Tipos de dados
 Os dados podem estar representados
(estruturados) de diferentes maneiras
 Normalmente, a escolha da representação é
determinada pelas operações que serão
utilizadas sobre eles
 Exemplo: números inteiros
 Representação por palitinhos: II + IIII = IIIIII
 Boa para pequenos números (operação simples)
 Representação decimal: 1278 + 321 = 1599
 Boa para números maiores (operação complexa)
© Prof. Márcio Roberto Rizzatto Laboratório de Programação II
Revisão Rápida
 Programa
 Um programa é uma formulação concreta de um
algoritmo abstrato, baseado em representações
de dados específicas
 Os programas são feitos em alguma linguagem
que pode ser entendida e seguida pelo
computador
 Linguagem de máquina
 Linguagem de alto nível (uso de compilador)
 Aqui vamos utilizar a Linguagem C/C++
© Prof. Márcio Roberto Rizzatto Laboratório de Programação II
Revisão Rápida
 Linguagem C
 Criada no início da década de 70 para a
programação do sistema operacional Unix
 Uma das linguagens mais utilizadas no mundo, e
serviu como base para outras como C++, Java,
C#, Perl, Python, etc.
© Prof. Márcio Roberto Rizzatto Laboratório de Programação II
Revisão Rápida - Exemplo
#include<stdio.h>
#define MAX 10
int LeInteiro() {
int num;
printf(“Digite um numero: ");
scanf("%d", &num);
printf("n");
return num;
}
int main() {
int v[10], cont, aux, i, soma;
float media;
cont = 0;
aux = LeInteiro();
while(aux >= 0) {
v[cont] = aux;
aux = LeInteiro();
cont++;
}
soma = 0;
for(i=0;i<cont;i++)
soma += v[i];
media = soma / (float) cont;
printf("resultado: %fn",media);
}
© Prof. Márcio Roberto Rizzatto Laboratório de Programação II
Revisão Rápida
 Tipos Abstratos de Dados (TAD)
 Agrupa a estrutura de dados juntamente com as
operações que podem ser feitas sobre esses
dados
 O TAD encapsula a estrutura de dados. Os
usuários do TAD só tem acesso a algumas
operações disponibilizadas sobre esses dados
 Usuário só “enxerga” a interface, não a
implementação
© Prof. Márcio Roberto Rizzatto Laboratório de Programação II
Tipos Abstratos de Dados (TADs)
 Dessa forma, o usuário pode abstrair da
implementação específica.
 Qualquer modificação nessa implementação
fica restrita ao TAD
 A escolha de uma representação específica é
fortemente influenciada pelas operações a
serem executadas
© Prof. Márcio Roberto Rizzatto Laboratório de Programação II
Exemplo: Lista de números inteiros
 Operações
 Faz Lista Vazia
 Insere número no começo da lista
 Remove de uma posição i
20 13 02 30Implementação por Vetores:
void Insere(int x, Lista L) {
for(i=0;...) {...}
L[0] = x;
}
20 13 02 30
Implementação por Listas Encadeadas
void Insere(int x, Lista L) {
p = CriaNovaCelula(x);
L^.primeiro = p;
...
}
Programa usuário do TAD:
int main() {
Lista L;
int x;
x = 20;
FazListaVazia(L);
Insere(x,L);
...
}
© Prof. Márcio Roberto Rizzatto Laboratório de Programação II
Implementação de TADs
 Em linguagens orientadas por objeto (C++, Java) a
implementação é feita através de classes
 Em linguagens estruturadas (C, pascal) a
implementação é feita pela definição de tipos
juntamente com a implementação de funções
 Como vocês não viram o conceito de orientação por
objetos*, vamos utilizar os conceitos de C/C++ com
typedef e structs
 Orientação por objetos (classes, etc) vai ser vista
mais adiante em Programação Orientada para
Objetos (POO ou do inglês OOP) com C++.
© Prof. Márcio Roberto Rizzatto Laboratório de Programação II
Estruturas (Structs) em C / C++
 Uma estrutura é uma coleção de uma ou mais
variáveis, possivelmente de tipos diferentes,
colocadas juntas sob um único nome para
manipulação conveniente
 Por exemplo, para representar um aluno são
necessárias as informações nome, matrícula, conceito
 Ao invés de criar três variáveis, é possível criar uma
única variável contendo três campos.
 Em C/C++, usa-se a construção struct para
representar esse tipo de dado
© Prof. Márcio Roberto Rizzatto Laboratório de Programação II
Estruturas (Structs) em C / C++
#include<iostream>
#include<string>
using namespace std;
struct Aluno {
string nome;
int matricula;
char conceito;
};
int main() {
struct Aluno al, aux;
al.nome = “Pedro”
al.matricula = 200712;
al.conceito = ‘A’;
aux = al;
cout << aux.nome
}
Pedro
200712 A
al:
Pedro
200712 A
aux:
© Prof. Márcio Roberto Rizzatto Laboratório de Programação II
Declaração de Tipos
 Para simplificar, uma estrutura ou mesmo
outros tipos de dados podem ser definidos
como um novo tipo
 Uso da construção typedef
typedef struct {
string nome;
int matricula;
char conceito;
} TipoAluno;
typedef int[10] Vetor;
int main() {
TipoAluno al;
Vetor v;
...
}
© Prof. Márcio Roberto Rizzatto Laboratório de Programação II
TADs em C
 Para implementar um Tipo Abstrato de
Dados em C, usa-se a definição de tipos
juntamente com a implementação de funções
que agem sobre aquele tipo
 Como boa regra de programação, evita-se
acessar o dado diretamente, fazendo o
acesso só através das funções
 Mas, diferentemente de C++ e Java, não há uma
forma de proibir o acesso.
© Prof. Márcio Roberto Rizzatto Laboratório de Programação II
 Uma boa técnica de programação é
implementar os TADs em arquivos separados
do programa principal
 Para isso geralmente separa-se a declaração
e a implementação do TAD em dois arquivos:
 NomeDoTAD.h : com a declaração
 NomeDoTAD.cpp : com a implementação
 O programa ou outros TADs que utilizam o seu
TAD devem dar um #include no arquivo .h
TADs em C
© Prof. Márcio Roberto Rizzatto Laboratório de Programação II
Exemplo
 Implemente um TAD ContaBancaria, com os
campos número e saldo onde os clientes
podem fazer as seguintes operações:
 Iniciar uma conta com um número e saldo inicial
 Depositar um valor
 Sacar um valor
 Imprimir o saldo
 Faça um pequeno programa para testar o
seu TAD
© Prof. Márcio Roberto Rizzatto Laboratório de Programação II
ContaBancaria.h
// definição do tipo
typedef struct {
int numero;
double saldo;
} ContaBancaria;
// cabeçalho das funções
void Inicializa (ContaBancaria&, int, double);
void Deposito (ContaBancaria&, double);
void Saque (ContaBancaria&, double);
void Imprime (ContaBancaria);
© Prof. Márcio Roberto Rizzatto Laboratório de Programação II
ContaBancaria.cpp
#include<stdio.h>
#include"Contabancaria.h"
void Inicializa(ContaBancaria &conta, int numero, double saldo)
{
conta.numero = numero;
conta.saldo = saldo;
}
void Deposito (ContaBancaria &conta, double valor) {
conta.saldo += valor;
}
void Saque (ContaBancaria &conta, double valor) {
conta.saldo -= valor;
}
void Imprime (ContaBancaria conta) {
printf("Numero: %dn", conta.numero);
printf("Saldo: %fn", conta.saldo);
}
© Prof. Márcio Roberto Rizzatto Laboratório de Programação II
Main.cpp
#include<stdio.h>
#include<stdlib.h>
#include "ContaBancaria.h"
int main (void)
{
ContaBancaria conta1;
Inicializa(conta1, 918556, 300.00);
printf("nAntes da movimentacao:n ");
Imprime(conta1);
Deposito(conta1, 50.00);
Saque(conta1, 70.00);
printf("nDepois da movimentacao:n ");
Imprime (conta1);
system("PAUSE");
return(0);
}
© Prof. Márcio Roberto Rizzatto Laboratório de Programação II
Exercício
 Implemente um TAD Número Complexo
 cada número possui os campos real e imaginário
 Implemente as operações:
 Atribui: atribui valores para os campos
 Imprime: imprime o número da forma “R + Ci”
 Copia: Copia o valor de um número para outro
 Soma: Soma dois números complexos
 EhReal: testa se um número é real
 Faça um pequeno programa para testar o
seu TAD

Mais conteúdo relacionado

PDF
Problema de Pesquisa e Hipóteses Científicas - Profa.Rilva - GESME
DOCX
Telematica, tipos de telematica , Autenticacao, Redes virtuais privadas ( VPN )
PPT
Capítulo 11 - Como desenvolver sistemas de informação e gerenciar projetos
DOCX
Resenha de artigo científico
PDF
Informática 1-conceitos e componentes
PDF
Estatistica aplicada exercicios resolvidos manual tecnico formando
PDF
Lista de exercicios algoritmos resolvida-
Problema de Pesquisa e Hipóteses Científicas - Profa.Rilva - GESME
Telematica, tipos de telematica , Autenticacao, Redes virtuais privadas ( VPN )
Capítulo 11 - Como desenvolver sistemas de informação e gerenciar projetos
Resenha de artigo científico
Informática 1-conceitos e componentes
Estatistica aplicada exercicios resolvidos manual tecnico formando
Lista de exercicios algoritmos resolvida-

Mais procurados (20)

PDF
Lista de materiais de química
PDF
Lista de exercícios em portugol
PPS
Microsoft Access
PPT
Apresentação TCC
PPTX
A História e Evolução dos Computadores
PDF
Projeto de pesquisa exemplo
PPTX
Como fazer um relatório
PDF
Sistema Nacional de Educação de Moçambique
PPTX
Testes parametricos e nao parametricos
PPT
Arquitetura cliente servidor
PDF
exercicio-Organização e estrutura de Computadores
DOC
50 questoes de word windows e informatica basica
PDF
Relatorio de estagio tecnico em informatica
PDF
Cronograma da Dissertação de Mestrado
PPTX
Dispositivos progamaveis - memórias
PDF
[Solução] rao vibrações mecanicas 4ª
PPTX
Informática Básica - Aula 04 - Software
PPTX
Informática Básica - Aula 03 - Hardware
PDF
Observação, Questionário e Entrevista. Autor: Profa Anna Buy - PUC Rio.
PDF
Aula 01 - Planeamento de Sistemas de Informação
Lista de materiais de química
Lista de exercícios em portugol
Microsoft Access
Apresentação TCC
A História e Evolução dos Computadores
Projeto de pesquisa exemplo
Como fazer um relatório
Sistema Nacional de Educação de Moçambique
Testes parametricos e nao parametricos
Arquitetura cliente servidor
exercicio-Organização e estrutura de Computadores
50 questoes de word windows e informatica basica
Relatorio de estagio tecnico em informatica
Cronograma da Dissertação de Mestrado
Dispositivos progamaveis - memórias
[Solução] rao vibrações mecanicas 4ª
Informática Básica - Aula 04 - Software
Informática Básica - Aula 03 - Hardware
Observação, Questionário e Entrevista. Autor: Profa Anna Buy - PUC Rio.
Aula 01 - Planeamento de Sistemas de Informação
Anúncio

Destaque (20)

PPT
Estruturas
PPTX
Programando em C++ // Estrutura Básica
PDF
C++ apostila c++ nivel basico
PDF
Estrutura de Dados - Registros
ODP
Linguagem C 07 Registros
PPTX
Conjunto de instruções mips - introdução
PDF
Livro Linguagem C - Completo
PDF
Fundamentos da programação de computadores 2ª edição
ODP
Aula c++ estruturas de dados
PDF
Apresentação c++ UFC-Quixadá
PPTX
PDF
03 mips assembly language
DOCX
Plan anual bimestral de desarrollo curricular ballester 2014
PDF
Fundamentos da Inteligencia Artificial :: Prof Dr. Carlos Estombelo
ODP
Linguagem C/C++: Condições ou expressões lógicas
PDF
Curriculo Regionalizado Quechuas
PDF
Estrutura de dados - Introdução a linguagem C
PPTX
Civilização Inca
PPT
Raiz Quadrada
PDF
Princípios e Práticas de Programação com C++
Estruturas
Programando em C++ // Estrutura Básica
C++ apostila c++ nivel basico
Estrutura de Dados - Registros
Linguagem C 07 Registros
Conjunto de instruções mips - introdução
Livro Linguagem C - Completo
Fundamentos da programação de computadores 2ª edição
Aula c++ estruturas de dados
Apresentação c++ UFC-Quixadá
03 mips assembly language
Plan anual bimestral de desarrollo curricular ballester 2014
Fundamentos da Inteligencia Artificial :: Prof Dr. Carlos Estombelo
Linguagem C/C++: Condições ou expressões lógicas
Curriculo Regionalizado Quechuas
Estrutura de dados - Introdução a linguagem C
Civilização Inca
Raiz Quadrada
Princípios e Práticas de Programação com C++
Anúncio

Semelhante a Estruturas em C++ (struct) (20)

PPT
aula01-TDA (1).ppt
PDF
Laboratório de Programação II: Tipo Abstrato de Dados (TAD)
PDF
Modulo02
PDF
Programação Estruturada 2 - Curso Completo
PDF
Linguagem c parte 2
PPT
Introdução a Linguagem C
PDF
Introdução à Linguagem de Programação C
PPTX
Aula 14 estruturas - Programação 1
PPTX
Aula 12 funcoes - Programação 1
PPTX
Aula 5 - Programação 1
PDF
Introdução à linguagem C#
PPSX
Introdução a linguagem de programação C
PPTX
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
PPTX
Programação Estruturada 2 - Aula 02
PPTX
Programação Estruturada 2 - Aula 03
PPTX
Programação Estruturada 2 - Aula 01
PDF
Revista programar 21
PDF
Estrutura de Dados - Aula de revisão de c na prática
PDF
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
aula01-TDA (1).ppt
Laboratório de Programação II: Tipo Abstrato de Dados (TAD)
Modulo02
Programação Estruturada 2 - Curso Completo
Linguagem c parte 2
Introdução a Linguagem C
Introdução à Linguagem de Programação C
Aula 14 estruturas - Programação 1
Aula 12 funcoes - Programação 1
Aula 5 - Programação 1
Introdução à linguagem C#
Introdução a linguagem de programação C
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 01
Revista programar 21
Estrutura de Dados - Aula de revisão de c na prática
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...

Último (20)

PPTX
NR11 - Treinamento Direcao Defensiva - 2023.pptx
PPTX
Biologia celular: citologia, é o estudo da célula, a unidade básica da vida.
PPT
Imperio Bbrasileiro-1822-1889 - aspectos gerais
PPTX
ACIDOS NUCLEICOS - REPLICAÇÃO DO DNA - E.M.
PPTX
Filosofia Ocidental Antiga 2025 - versão atualizada
PPTX
INDÚSTRIA_ Histórico da industrialização.pptx
PPTX
Reino Monera e Protista: representantes e caracteristicas.pptx
PPTX
MENDEL - Aula sobre Mendel - Genética EM
PPTX
Slides Lição 7, CPAD, Uma Igreja Que Não Teme A Perseguição, 3Tr25.pptx
PPTX
Trabalho Cidades sustentáveis ou Utopia.pptx
PPTX
brasilcolnia2-101027184359-phpapp02.pptx
PDF
Ementa 2 semestre PEI Orientação de estudo
PDF
saeb_documentos_de_referencia_versao_1.0.pdf
PPTX
O Romantismo e a identidade brasileira..
PPTX
16. MODERNISMO - PRIMEIRA GERAÇÃO - EDIÇÃO 2021 (1).pptx
PPTX
Slide_Macronutrientes e Antinutrientes da Dieta Humana.pptx
PPTX
Pedagogia em Ambientes Não Escolares.pptx
PDF
embriologia_animal_aula_share_2026_semestre
PPT
sistema reprodutor para turmas do oitavo ano
PDF
aulademeiodetransporteemlibras-120304202807-phpapp01_removed.pdf
NR11 - Treinamento Direcao Defensiva - 2023.pptx
Biologia celular: citologia, é o estudo da célula, a unidade básica da vida.
Imperio Bbrasileiro-1822-1889 - aspectos gerais
ACIDOS NUCLEICOS - REPLICAÇÃO DO DNA - E.M.
Filosofia Ocidental Antiga 2025 - versão atualizada
INDÚSTRIA_ Histórico da industrialização.pptx
Reino Monera e Protista: representantes e caracteristicas.pptx
MENDEL - Aula sobre Mendel - Genética EM
Slides Lição 7, CPAD, Uma Igreja Que Não Teme A Perseguição, 3Tr25.pptx
Trabalho Cidades sustentáveis ou Utopia.pptx
brasilcolnia2-101027184359-phpapp02.pptx
Ementa 2 semestre PEI Orientação de estudo
saeb_documentos_de_referencia_versao_1.0.pdf
O Romantismo e a identidade brasileira..
16. MODERNISMO - PRIMEIRA GERAÇÃO - EDIÇÃO 2021 (1).pptx
Slide_Macronutrientes e Antinutrientes da Dieta Humana.pptx
Pedagogia em Ambientes Não Escolares.pptx
embriologia_animal_aula_share_2026_semestre
sistema reprodutor para turmas do oitavo ano
aulademeiodetransporteemlibras-120304202807-phpapp01_removed.pdf

Estruturas em C++ (struct)

  • 1. Estruturas em C/C++ struct Prof. Márcio Roberto Rizzatto Laboratório de Programação II Ciência da Computação FAI Laboratório de Programação II
  • 2. © Prof. Márcio Roberto Rizzatto Laboratório de Programação II Revisão Rápida Qual a diferença entre um algoritmo e um programa?
  • 3. © Prof. Márcio Roberto Rizzatto Laboratório de Programação II Revisão Rápida  Algoritmo  Sequência de ações executáveis para a solução de um determinado tipo de problema  Exemplo: “Receita de Bolo”  Em geral, algoritmos trabalham sobre Estruturas de Dados  Estruturas de Dados  Conjunto de dados que representa uma situação real  Abstração da realidade  Estruturas de Dados e Algoritmos estão intimamente ligados
  • 4. © Prof. Márcio Roberto Rizzatto Laboratório de Programação II Revisão Rápida  Tipos de dados  Os dados podem estar representados (estruturados) de diferentes maneiras  Normalmente, a escolha da representação é determinada pelas operações que serão utilizadas sobre eles  Exemplo: números inteiros  Representação por palitinhos: II + IIII = IIIIII  Boa para pequenos números (operação simples)  Representação decimal: 1278 + 321 = 1599  Boa para números maiores (operação complexa)
  • 5. © Prof. Márcio Roberto Rizzatto Laboratório de Programação II Revisão Rápida  Programa  Um programa é uma formulação concreta de um algoritmo abstrato, baseado em representações de dados específicas  Os programas são feitos em alguma linguagem que pode ser entendida e seguida pelo computador  Linguagem de máquina  Linguagem de alto nível (uso de compilador)  Aqui vamos utilizar a Linguagem C/C++
  • 6. © Prof. Márcio Roberto Rizzatto Laboratório de Programação II Revisão Rápida  Linguagem C  Criada no início da década de 70 para a programação do sistema operacional Unix  Uma das linguagens mais utilizadas no mundo, e serviu como base para outras como C++, Java, C#, Perl, Python, etc.
  • 7. © Prof. Márcio Roberto Rizzatto Laboratório de Programação II Revisão Rápida - Exemplo #include<stdio.h> #define MAX 10 int LeInteiro() { int num; printf(“Digite um numero: "); scanf("%d", &num); printf("n"); return num; } int main() { int v[10], cont, aux, i, soma; float media; cont = 0; aux = LeInteiro(); while(aux >= 0) { v[cont] = aux; aux = LeInteiro(); cont++; } soma = 0; for(i=0;i<cont;i++) soma += v[i]; media = soma / (float) cont; printf("resultado: %fn",media); }
  • 8. © Prof. Márcio Roberto Rizzatto Laboratório de Programação II Revisão Rápida  Tipos Abstratos de Dados (TAD)  Agrupa a estrutura de dados juntamente com as operações que podem ser feitas sobre esses dados  O TAD encapsula a estrutura de dados. Os usuários do TAD só tem acesso a algumas operações disponibilizadas sobre esses dados  Usuário só “enxerga” a interface, não a implementação
  • 9. © Prof. Márcio Roberto Rizzatto Laboratório de Programação II Tipos Abstratos de Dados (TADs)  Dessa forma, o usuário pode abstrair da implementação específica.  Qualquer modificação nessa implementação fica restrita ao TAD  A escolha de uma representação específica é fortemente influenciada pelas operações a serem executadas
  • 10. © Prof. Márcio Roberto Rizzatto Laboratório de Programação II Exemplo: Lista de números inteiros  Operações  Faz Lista Vazia  Insere número no começo da lista  Remove de uma posição i 20 13 02 30Implementação por Vetores: void Insere(int x, Lista L) { for(i=0;...) {...} L[0] = x; } 20 13 02 30 Implementação por Listas Encadeadas void Insere(int x, Lista L) { p = CriaNovaCelula(x); L^.primeiro = p; ... } Programa usuário do TAD: int main() { Lista L; int x; x = 20; FazListaVazia(L); Insere(x,L); ... }
  • 11. © Prof. Márcio Roberto Rizzatto Laboratório de Programação II Implementação de TADs  Em linguagens orientadas por objeto (C++, Java) a implementação é feita através de classes  Em linguagens estruturadas (C, pascal) a implementação é feita pela definição de tipos juntamente com a implementação de funções  Como vocês não viram o conceito de orientação por objetos*, vamos utilizar os conceitos de C/C++ com typedef e structs  Orientação por objetos (classes, etc) vai ser vista mais adiante em Programação Orientada para Objetos (POO ou do inglês OOP) com C++.
  • 12. © Prof. Márcio Roberto Rizzatto Laboratório de Programação II Estruturas (Structs) em C / C++  Uma estrutura é uma coleção de uma ou mais variáveis, possivelmente de tipos diferentes, colocadas juntas sob um único nome para manipulação conveniente  Por exemplo, para representar um aluno são necessárias as informações nome, matrícula, conceito  Ao invés de criar três variáveis, é possível criar uma única variável contendo três campos.  Em C/C++, usa-se a construção struct para representar esse tipo de dado
  • 13. © Prof. Márcio Roberto Rizzatto Laboratório de Programação II Estruturas (Structs) em C / C++ #include<iostream> #include<string> using namespace std; struct Aluno { string nome; int matricula; char conceito; }; int main() { struct Aluno al, aux; al.nome = “Pedro” al.matricula = 200712; al.conceito = ‘A’; aux = al; cout << aux.nome } Pedro 200712 A al: Pedro 200712 A aux:
  • 14. © Prof. Márcio Roberto Rizzatto Laboratório de Programação II Declaração de Tipos  Para simplificar, uma estrutura ou mesmo outros tipos de dados podem ser definidos como um novo tipo  Uso da construção typedef typedef struct { string nome; int matricula; char conceito; } TipoAluno; typedef int[10] Vetor; int main() { TipoAluno al; Vetor v; ... }
  • 15. © Prof. Márcio Roberto Rizzatto Laboratório de Programação II TADs em C  Para implementar um Tipo Abstrato de Dados em C, usa-se a definição de tipos juntamente com a implementação de funções que agem sobre aquele tipo  Como boa regra de programação, evita-se acessar o dado diretamente, fazendo o acesso só através das funções  Mas, diferentemente de C++ e Java, não há uma forma de proibir o acesso.
  • 16. © Prof. Márcio Roberto Rizzatto Laboratório de Programação II  Uma boa técnica de programação é implementar os TADs em arquivos separados do programa principal  Para isso geralmente separa-se a declaração e a implementação do TAD em dois arquivos:  NomeDoTAD.h : com a declaração  NomeDoTAD.cpp : com a implementação  O programa ou outros TADs que utilizam o seu TAD devem dar um #include no arquivo .h TADs em C
  • 17. © Prof. Márcio Roberto Rizzatto Laboratório de Programação II Exemplo  Implemente um TAD ContaBancaria, com os campos número e saldo onde os clientes podem fazer as seguintes operações:  Iniciar uma conta com um número e saldo inicial  Depositar um valor  Sacar um valor  Imprimir o saldo  Faça um pequeno programa para testar o seu TAD
  • 18. © Prof. Márcio Roberto Rizzatto Laboratório de Programação II ContaBancaria.h // definição do tipo typedef struct { int numero; double saldo; } ContaBancaria; // cabeçalho das funções void Inicializa (ContaBancaria&, int, double); void Deposito (ContaBancaria&, double); void Saque (ContaBancaria&, double); void Imprime (ContaBancaria);
  • 19. © Prof. Márcio Roberto Rizzatto Laboratório de Programação II ContaBancaria.cpp #include<stdio.h> #include"Contabancaria.h" void Inicializa(ContaBancaria &conta, int numero, double saldo) { conta.numero = numero; conta.saldo = saldo; } void Deposito (ContaBancaria &conta, double valor) { conta.saldo += valor; } void Saque (ContaBancaria &conta, double valor) { conta.saldo -= valor; } void Imprime (ContaBancaria conta) { printf("Numero: %dn", conta.numero); printf("Saldo: %fn", conta.saldo); }
  • 20. © Prof. Márcio Roberto Rizzatto Laboratório de Programação II Main.cpp #include<stdio.h> #include<stdlib.h> #include "ContaBancaria.h" int main (void) { ContaBancaria conta1; Inicializa(conta1, 918556, 300.00); printf("nAntes da movimentacao:n "); Imprime(conta1); Deposito(conta1, 50.00); Saque(conta1, 70.00); printf("nDepois da movimentacao:n "); Imprime (conta1); system("PAUSE"); return(0); }
  • 21. © Prof. Márcio Roberto Rizzatto Laboratório de Programação II Exercício  Implemente um TAD Número Complexo  cada número possui os campos real e imaginário  Implemente as operações:  Atribui: atribui valores para os campos  Imprime: imprime o número da forma “R + Ci”  Copia: Copia o valor de um número para outro  Soma: Soma dois números complexos  EhReal: testa se um número é real  Faça um pequeno programa para testar o seu TAD

Notas do Editor

  • #5: O que e como representar Cada representacao tem limitacoes