53
Programação de Computadores II 9. Tipo Abstrato de Dados Raphael M. 2019.1 Raphael M. Aula 09. Tipo Abstrato de Dados

Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

ProgramaçãodeComputadores II9. Tipo Abstrato de Dados

Raphael M.

2019.1

Raphael M. Aula 09.T i po Abstratode Dados

Page 2: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

TipoAbstratode Dados

Tipo Abstrato de Dados (TAD) é um modelo no qual a definição de um conjunto de dados e suas operações é semântica.

Foco nos aspectos essenciais do dado. Abstração de como ele foi implementado.Num bom programa o main() só faz declarações e chamadas para TADs.O TAD é um caixa preta que resolve problemas, fornece dados sem que o usuário precise saber como o problema está sendo resolvido e como os dados estão sendorepresentados.

Raphael M. Aula 09.T i po Abstratode Dados

Page 3: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

TipoAbstratode Dados

TiposSão as variáveis que serão utilizadas, normalmente declarada comstruct e typedef.

OperaçõesSão operações que são realizadas nos dados, normalmente sãofunções que ou retornam ou possuem como argumento o tipodefinido.

Raphael M. Aula 09.T i po Abstratode Dados

Page 4: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

TipoAbstratode Dados

TiposSão as variáveis que serão utilizadas, normalmente declarada comstruct e typedef.

Estudante: nome, matricula, notaP, notaT

OperaçõesSão operações que são realizadas nos dados, normalmente sãofunções que ou retornam ou possuem como argumento o tipodefinido.

calculaMedia(), defineNome(), validaMatricula()

Raphael M. Aula 09.T i po Abstratode Dados

Page 5: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

TipoAbstratode Dados

TiposSão as variáveis que serão utilizadas, normalmente declarada comstruct e typedef.

Estudante: nome, matricula, notaP, notaT Vetor: elementos

OperaçõesSão operações que são realizadas nos dados, normalmente sãofunções que ou retornam ou possuem como argumento o tipodefinido.

calculaMedia(), defineNome(), validaMatricula() soma(), produtoInterno(), produtoVetorial()

Raphael M. Aula 09.T i po Abstratode Dados

Page 6: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

TipoAbstratode Dados

TiposSão as variáveis que serão utilizadas, normalmente declarada comstruct e typedef.

Estudante: nome, matricula, notaP, notaT Vetor: elementosPontos: x, y,z

OperaçõesSão operações que são realizadas nos dados, normalmente sãofunções que ou retornam ou possuem como argumento o tipodefinido.

calculaMedia(), defineNome(), validaMatricula() soma(), produtoInterno(), produtoVetorial() saoIguais(), calculaDistancia(), valorX()

Raphael M. Aula 09.T i po Abstratode Dados

Page 7: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Fração

Fracao f ;

Fracao = cr iaFracao(int den, i n t num); i n t porZero (Fracao f ) ;i n t ehNegativa (Fracao f ) ;i n t valorDenominador (Fracao f ) ; i n t valorNumerador (Fracao f ) ; void reduz (Fracao f ) ;Fracao soma (Fracao f 1 , Fracao f 2 ) ; Fracao sub t ra i (Fracao f 1 , Fracao f 2 ) ; Fracao mult ipl ica (Fracao f 1 , Fracao f 2 ) ; Fracao divide (Fracao f 1 , Fracao f 2 ) ;

Raphael M. Aula 09.T i po Abstratode Dados

Page 8: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Fração

typedef s t r u c t fracao { i n t numerador;i n t denominador;

} Fracao;

i n t porZero (Fracao f ) {i f (f.denominador == 0) re turn 1 ;e l se re turn 0 ;

}

Fracao mult ipl ica (Fracao f 1 , Fracao f2 ) { Fracao f ;f.numerador = f1.numerador * f2.numerador; f.denominador = f1.denominador * f2.denominador; re turn f ;

}

Raphael M. Aula 09.T i po Abstratode Dados

Page 9: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Fração

#define NUM 0#define DEN 1typedef i n t Fracao[2];

i n t porZero (Fracao f ) {i f (f[DEN] == 0) re turn 1 ;e l se re turn 0 ;

}

Fracao mult ipl ica (Fracao f 1 , Fracao f2 ) { Fracao f ;f[NUM] = f1[NUM] * f2[NUM];f[DEN] = f1[DEN] * f2[DEN];re turn f ;

}

Raphael M. Aula 09.T i po Abstratode Dados

Page 10: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

TipoAbstratode Dados

O usuário não vê a implementação.Não há referência à maneira que os dados são representados ouutilizados.Separação do programa, da especificação e da implementação.

Raphael M. Aula 09.T i po Abstratode Dados

Page 11: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

VantagensdoTAD

Mais fácil modificar o código.O código pode ser reutilizado.Mais fácil acharerros.O código podeser compartilhado entre maisdeumprograma.

Raphael M. Aula 09.T i po Abstratode Dados

Page 12: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

VantagensdoTAD

Num TAD a implementação deve toda ser abstraída no arquivo principal. Assim, qualquer acesso direto a elementos do TAD é uma violação a essaregra.

#include "fracao.h"

i n t main() {Fracao f1 = criaFracao(10, 3 ) ; Fracao f2 = criaFracao(20, 9 ) ; Fracao f3 = soma ( f 1 , f 2 ) ; re turn 0 ;

}

O arquivo main acima funciona com ambas as implementações de Fração vistas.

Raphael M. Aula 09.T i po Abstratode Dados

Page 13: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Ponto

typedef s t r u c t ponto { i n t x ;i n t y ;

} Ponto;

Ponto definePonto ( i n t x , i n t y ) ;i n t calculaDistancia (Ponto p1, Ponto p2); i n t valorX (Ponto p ) ;i n t valorY (Ponto p ) ;

Raphael M. Aula 09.T i po Abstratode Dados

Page 14: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Circulo

typedef s t r u c t c i rcu lo { Ponto centro ;i n t r a i o ;

} Circulo;

Circulo defineCirculo ( i n t r a i o , Ponto cen t ro ) ; Circulo mudaCentro (Circulo c , Ponto cen t ro ) ; Circulo mudaRaio (Circulo c , i n t r a i o ) ;f l o a t calculaArea (Circulo c ) ; i n t valorRaio (Circulo c ) ; Ponto valorCentro (Circulo c ) ;

Raphael M. Aula 09.T i po Abstratode Dados

Page 15: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Desenho

typedef s t r u c t desenho { Ponto pontos[100]; Circulo c irculos[100]; i n t p ;i n t c ;

} Desenho;

Desenho criaDesenho();Desenho insereCirculo(Desenho d , Circulo c ) ; Desenho removeCirculo(Desenho d , Circulo c ) ; Desenho inserePonto(Desenho d , Ponto p ) ; Desenho removePonto(Desenho d , Ponto p ) ;i n t numeroFormas(Desenho d ) ;

Raphael M. Aula 09.T i po Abstratode Dados

Page 16: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

SoftwareemCamadas

Raphael M. Aula 09.T i po Abstratode Dados

Page 17: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Exemplo1: Data

Raphael M. Aula 09.T i po Abstratode Dados

Page 18: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Exemplo1: Data

typedef s t r u c t data { i n t d i a ;i n t mes; i n t ano;

} Data;

Raphael M. Aula 09.T i po Abstratode Dados

Page 19: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Exemplo1: Data

typedef s t r u c t data { i n t d i a ;i n t mes; i n t ano;

} Data;

Data c r iaData( in t d i a , i n t mes, i n t ano); i n t comparaData(Data d1, Data d2);void imprimeData(Data d ) ;Data mudaDia(int d i a , Data d ) ; i n t anoBissexto (Data d ) ;

Raphael M. Aula 09.T i po Abstratode Dados

Page 20: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Exemplo2: Horario

Raphael M. Aula 09.T i po Abstratode Dados

Page 21: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Exemplo2: Horario

typedef s t r u c t horario { i n t hora;i n t minuto; i n t segundo; i n t fuso;

} Horario;

Raphael M. Aula 09.T i po Abstratode Dados

Page 22: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Exemplo2: Horario

typedef s t r u c t horario { i n t hora;i n t minuto; i n t segundo; i n t fuso;

} Horario;

Horario cr iaHorar io( in t hora, i n t min, i n t seg ) ; i n t comparaHorario(Horario h1, Horario h2);void imprimeHorario(Horario h ) ; void horarioDeVerao(Horario *h);

Raphael M. Aula 09.T i po Abstratode Dados

Page 23: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Exemplo3:Conta Bancária

Raphael M. Aula 09.T i po Abstratode Dados

Page 24: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Exemplo3:Conta Bancária

typedef s t r u c t conta { f l o a t sa ldo;f l o a t depositos[100]; f l o a t t ransferencias[100]; char *usuario;i n t senha;

} Conta;

Raphael M. Aula 09.T i po Abstratode Dados

Page 25: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Exemplo3:Conta Bancária

typedef s t r u c t conta { f l o a t sa ldo;f l o a t depositos[100]; f l o a t t ransferencias[100]; char *usuario;i n t senha;

} Conta;

Conta criaConta(char *usuario, i n t senha); void deletaConta(Conta c ) ;void deposi to(f loa t va lo r , Conta c ) ; void saque(f loat va lo r , Conta c ) ;void t r a n s f ( f l o a t va lo r , Conta origem, Conta des t ino ) ; f l o a t saldo(Conta c ) ;

Raphael M. Aula 09.T i po Abstratode Dados

Page 26: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Exercício

Em matemática, função polinomial é uma função que pode ser expressa da forma:

f (x) = anxn + an−1xn−1 +···+ a1x1+a0x0

Projete o TAD para funções polinomiais. Pense em qual seria o tipo de dados e quais operações deveriam ser implementadas.

Raphael M. Aula 09.T i po Abstratode Dados

Page 27: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Exercício: Solução

Projete o TAD para equações polinomiais. Pense em qual seria o tipo de dados e quais funções deveriam ser implementadas.

#define MAX 100

typedef s t r u c t polinomio {i n t coeficientes[MAX];i n t grau;

} Polinomio;

Polinomio criaPolinomio ( i n t grau) ;void insereCoeficiente (Polinomio *p, i n t termo, i n t coe f ) ; Polinomio soma (Polinomio p1, Polinomio p2);Polinomio mult ipl ica (Polinomio p1, Polinomio p2);

Raphael M. Aula 09.T i po Abstratode Dados

Page 28: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

ProgramaçãodeComputadores II10. Modularização

RaphaelM.

2019.1

Raphael M. Aula 10. Modularização

Page 29: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

SoftwareemCamadas

Raphael M. Aula 10. Modularização

Page 30: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

SoftwareemCamadas

Raphael M. Aula 10. Modularização

Page 31: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Arquivos.he .c

O.h(header)contémasestruturasnecessárias,osprotótiposdasfunçõeseasbibliotecaspadrão.Elanãocontémnenhumaimplementação.Oarquivo.cpossuidefatoasimplementaçõesdasfunçõeseincluiapenaso .h.Oarquivoprincipalpossuisomenteafunçãomain()efazchamadasatodasasfunçõeseestruturasimplementadasnasbibliotecas.Umarquivo.cnuncadeveserincluídocomo biblioteca!

Paraincluirumabibliotecapadrãoutilizamos<nome.h>eparaincluirumabibliotecanossautilizamos "nome.h".

Raphael M. Aula 10. Modularização

Page 32: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

ponto.h

Raphael M. Aula 10. Modularização

Page 33: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

ponto.c

Raphael M. Aula 10. Modularização

Page 34: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

circulo.h

Raphael M. Aula 10. Modularização

Page 35: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

circulo.c

Raphael M. Aula 10. Modularização

Page 36: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

quadrado.h

Raphael M. Aula 10. Modularização

Page 37: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

quadrado.c

Raphael M. Aula 10. Modularização

Page 38: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

desenho.h

Raphael M. Aula 10. Modularização

Page 39: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

desenho.c

Raphael M. Aula 10. Modularização

Page 40: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

main.c

Faráchamadasparaasfunçõesdefinidas.Nãofaráacessodiretoanenhum struct.Faráainteraçãodasfunçõescomousuário final.

Raphael M. Aula 10. Modularização

Page 41: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

main.c

Raphael M. Aula 10. Modularização

Page 42: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

CompilaçãoporLinhadeComando

Cadabiblioteca(conjuntodearquivos.ce.h)deverágerarumobjeto (.o).Oprograma-objetoseráumexecutáveldaquela biblioteca.Aocompilarseuarquivoprincipalmain.cvocêdeveincluircada biblioteca.

Raphael M. Aula 10. Modularização

Page 43: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Criando Objetos

gcc-c<nomedo programa>.c

gcc-cponto.c=⇒ ponto.ogcc-ccirculo.c=⇒ circulo.ogcc-cquadrado.c=⇒ quadrado.ogcc-cdesenho.c=⇒ desenho.o

Raphael M. Aula 10. Modularização

Page 44: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Criando Executável

gcc<nomedoprograma>.c-o<nomedoexecutável><nomedosobjetos>

gccmain.c-omainponto.ocirculo.oquadrado.o desenho.o=⇒ main

Raphael M. Aula 10. Modularização

Page 45: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Makefile

Paraevitarescrevertodasaslinhasdecompilaçãopodemoscriarum Makefile

OarquivodevesechamarMakefileestarnamesmapastaqueoscódigos.Aodigitarmakenoterminal,omakeexecutaráefaráacompilação necessária.Seumconjuntodearquivos.he.cquegerouum.onãofoialteradooMakefileevitaa recompilação.

Raphael M. Aula 10. Modularização

Page 46: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Makefile

Paraevitarescrevertodasaslinhasdecompilaçãopodemoscriarum Makefile

Raphael M. Aula 10. Modularização

Page 47: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

#ifndef

Se uma biblioteca é incluída duas vezes em C temos um erro deconflito. Assim, para evitar esse problema usamos no header osseguintes comandos.

#ifndef:Seumtokennãofoidefinido.#ifdef:Seumtokenfoidefinido.#else:Senãoparaqualquerumdosifs.#endif:Fimdasaçõesdeif.

#ifndef TOKEN #define TOKEN

::

#endif

Raphael M. Aula 10. Modularização

Page 48: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

#ifndef

Raphael M. Aula 10. Modularização

Page 49: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Códigos

Códigosdisponíveisnositedocurso

Raphael M. Aula 10. Modularização

Page 50: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Exercício

FaçaoTAD,incluindocadaarquivo,paraequaçõespolinomiaiscomleitura,escritaesoma.

Raphael M. Aula 10. Modularização

Page 51: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Exercício: Solução

FaçaoTAD,incluindocadaarquivo, paraequaçõespolinomiais.

polinomio.h

Raphael M. Aula 10. Modularização

Page 52: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Exercício: Solução

FaçaoTAD,incluindocadaarquivo, paraequaçõespolinomiais.

polinomio.cRaphael M. Aula 10. Modularização

Page 53: Programação de ComputadoresII - SICCCiber · 2019. 11. 3. · soma(), produtoInterno(), produtoVetorial() Raphael M. Aula 09. Tipo Abstrato deDados. Tipo Abstrato deDados Tipos

Exercício: Solução

FaçaoTAD,incluindocadaarquivo, paraequaçõespolinomiais.

main.c

Raphael M. Aula 10. Modularização