SlideShare uma empresa Scribd logo
Aula 1
Tipo Abstrato de Dados
David Menotti
Algoritmos e Estruturas de Dados I
DECOM – UFOP
© David Menotti Algoritmos e Estrutura de Dados I
Qual a diferença entre um
algoritmo e um programa?
© David Menotti Algoritmos e Estrutura de Dados I
Algoritmos e Estruturas de Dados
 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
 Conjunto de dados que representa uma
situação real
 Abstração da realidade
 Estruturas de Dados e Algoritmos estão
intimamente ligados
© David Menotti Algoritmos e Estrutura de Dados I
Representação dos 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)
© David Menotti Algoritmos e Estrutura de Dados I
Programas
 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
© David Menotti Algoritmos e Estrutura de Dados I
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++, C#, etc.
© David Menotti Algoritmos e Estrutura de Dados I
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);
}
© David Menotti Algoritmos e Estrutura de Dados I
Tipos Abstratos de Dados (TADs)
 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 do TAD x Programador do TAD
 Usuário só “enxerga” a interface, não a
implementação
© David Menotti Algoritmos e Estrutura de Dados I
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
© David Menotti Algoritmos e Estrutura de Dados I
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 30
Implementaçã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);
...
}
© David Menotti Algoritmos e Estrutura de Dados I
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
(Typedef e Structs)
 Orientação por objetos (classes, etc) vai ser vista
em outras disciplinas (POO)
© David Menotti Algoritmos e Estrutura de Dados I
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, usa-se a construção struct para representar
esse tipo de dado
© David Menotti Algoritmos e Estrutura de Dados I
Estruturas (Structs) em C / C++
#include<iostream>
#include<string>
using namespace std;
struct Aluno {
string nome;
int matricula;
char conceito;
};
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:
© David Menotti Algoritmos e Estrutura de Dados I
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;
...
}
© David Menotti Algoritmos e Estrutura de Dados I
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.
© David Menotti Algoritmos e Estrutura de Dados I
 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
© David Menotti Algoritmos e Estrutura de Dados I
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
© David Menotti Algoritmos e Estrutura de Dados I
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);
// obs: A passagem por referencia (&) só existe em
// c++. Em breve vamos ver como fazer em c
© David Menotti Algoritmos e Estrutura de Dados I
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);
}
© David Menotti Algoritmos e Estrutura de Dados I
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);
}
© David Menotti Algoritmos e Estrutura de Dados I
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

PPT
Estruturas em C++ (struct)
PDF
Estrutura de Dados - Aula 03 - Ponteiros e Funções
PDF
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
PDF
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
PPTX
Estrutura de Dados - Aula 02
PDF
Algoritmo e Estrutura de dados em C - Aula 01 - 2019
PPT
Introducao Estrutura de Dados - Pilha Fila
PPT
Estruturas
Estruturas em C++ (struct)
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02
Algoritmo e Estrutura de dados em C - Aula 01 - 2019
Introducao Estrutura de Dados - Pilha Fila
Estruturas

Semelhante a aula01-TDA (1).ppt (20)

PPT
Introdução à Estrutura de Dados
PDF
Estrutura de Dados - Aula Revisão para 1ª Avaliação
PPT
Introducao Estrutura de Dados CETIPPT.ppt
PDF
Laboratório de Programação II: Tipo Abstrato de Dados (TAD)
PDF
Pdf 1 tad e modularizacao.pptx
PPT
PDF
document.onl_manual-psi-m5.pdf
PPTX
Estrutura de Dados
PDF
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
PDF
Estrutura de Dados - Aula de revisão de c na prática
PDF
Estrutura de dados
PPTX
Estrutura de Dados - Unidade 1 - Apresentação.pptx
PDF
Pged 03
PPTX
Estrutura de dados
PDF
Listas: conceito e estáticas
PDF
Lógica de programação
PDF
Apostila Algoritmos e Estrutura de Dados (AEDS)
PDF
Apostila aed
PPTX
Aula 7 pc - estrutura
Introdução à Estrutura de Dados
Estrutura de Dados - Aula Revisão para 1ª Avaliação
Introducao Estrutura de Dados CETIPPT.ppt
Laboratório de Programação II: Tipo Abstrato de Dados (TAD)
Pdf 1 tad e modularizacao.pptx
document.onl_manual-psi-m5.pdf
Estrutura de Dados
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
Estrutura de Dados - Unidade 1 - Apresentação.pptx
Pged 03
Estrutura de dados
Listas: conceito e estáticas
Lógica de programação
Apostila Algoritmos e Estrutura de Dados (AEDS)
Apostila aed
Aula 7 pc - estrutura
Anúncio

Mais de TopsAvakinImvu (18)

PPT
auladequimica9_Tabela periodica aula.ppt
PPTX
salmossalmossalmossalmossermaoSALMOS 23.pptx
PPTX
sermaoparapregarnumaigreja1 Pedro 5 (1).pptx
PPTX
1Pedro5sermaoparapregarnaigrejahoje.pptx
PDF
ANGULOS,CLASSIFICAÇÃO,TIPOSDEANGULOS.pdf
PPT
Acertando_umos_FUNCEFfinancaspessoais.ppt
PDF
amanhaeletrizaçaoporatritocontatoinduçao.pdf
PPT
Escalas termométricas...CELSIUS,FAHRENHEIT E KELVIN
PPTX
Sistemas Lineares.pptx
PPTX
Relações métricas no triângulo retângulo.pptx
PPT
nascimento-vida-e-morte-de-estrelas.ppt
PPTX
PROBABILIDADE.pptx
PPTX
fluxogramas-no-dia-a-dia4970.pptx
PDF
publicidade
PPTX
CINEMÁTICA.pptx
PPT
Implementacao de Algoritmos.ppt
PDF
Logica Matematica1.pdf
PPTX
retas paralelas transversais
auladequimica9_Tabela periodica aula.ppt
salmossalmossalmossalmossermaoSALMOS 23.pptx
sermaoparapregarnumaigreja1 Pedro 5 (1).pptx
1Pedro5sermaoparapregarnaigrejahoje.pptx
ANGULOS,CLASSIFICAÇÃO,TIPOSDEANGULOS.pdf
Acertando_umos_FUNCEFfinancaspessoais.ppt
amanhaeletrizaçaoporatritocontatoinduçao.pdf
Escalas termométricas...CELSIUS,FAHRENHEIT E KELVIN
Sistemas Lineares.pptx
Relações métricas no triângulo retângulo.pptx
nascimento-vida-e-morte-de-estrelas.ppt
PROBABILIDADE.pptx
fluxogramas-no-dia-a-dia4970.pptx
publicidade
CINEMÁTICA.pptx
Implementacao de Algoritmos.ppt
Logica Matematica1.pdf
retas paralelas transversais
Anúncio

Último (19)

PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Apple Pippin Uma breve introdução. - David Glotz
Aula 18 - Manipulacao De Arquivos python
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Custos e liquidação no SAP Transportation Management, TM130 Col18
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Processos na gestão de transportes, TM100 Col18
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Aula04-Academia Heri- Tecnologia Geral 2025
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
COBITxITIL-Entenda as diferença em uso governança TI
Apple Pippin Uma breve introdução. - David Glotz

aula01-TDA (1).ppt

  • 1. Aula 1 Tipo Abstrato de Dados David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
  • 2. © David Menotti Algoritmos e Estrutura de Dados I Qual a diferença entre um algoritmo e um programa?
  • 3. © David Menotti Algoritmos e Estrutura de Dados I Algoritmos e Estruturas de Dados  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  Conjunto de dados que representa uma situação real  Abstração da realidade  Estruturas de Dados e Algoritmos estão intimamente ligados
  • 4. © David Menotti Algoritmos e Estrutura de Dados I Representação dos 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. © David Menotti Algoritmos e Estrutura de Dados I Programas  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
  • 6. © David Menotti Algoritmos e Estrutura de Dados I 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++, C#, etc.
  • 7. © David Menotti Algoritmos e Estrutura de Dados I 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. © David Menotti Algoritmos e Estrutura de Dados I Tipos Abstratos de Dados (TADs)  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 do TAD x Programador do TAD  Usuário só “enxerga” a interface, não a implementação
  • 9. © David Menotti Algoritmos e Estrutura de Dados I 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. © David Menotti Algoritmos e Estrutura de Dados I 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 30 Implementaçã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. © David Menotti Algoritmos e Estrutura de Dados I 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 (Typedef e Structs)  Orientação por objetos (classes, etc) vai ser vista em outras disciplinas (POO)
  • 12. © David Menotti Algoritmos e Estrutura de Dados I 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, usa-se a construção struct para representar esse tipo de dado
  • 13. © David Menotti Algoritmos e Estrutura de Dados I Estruturas (Structs) em C / C++ #include<iostream> #include<string> using namespace std; struct Aluno { string nome; int matricula; char conceito; }; 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. © David Menotti Algoritmos e Estrutura de Dados I 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. © David Menotti Algoritmos e Estrutura de Dados I 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. © David Menotti Algoritmos e Estrutura de Dados I  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. © David Menotti Algoritmos e Estrutura de Dados I 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. © David Menotti Algoritmos e Estrutura de Dados I 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); // obs: A passagem por referencia (&) só existe em // c++. Em breve vamos ver como fazer em c
  • 19. © David Menotti Algoritmos e Estrutura de Dados I 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. © David Menotti Algoritmos e Estrutura de Dados I 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. © David Menotti Algoritmos e Estrutura de Dados I 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