daniel terzella leandro amancio eduardo bruno …...7hpsodwhv — ’hfodudom g whpsodwh˛ frpho fr...

51
*HQHULF 3URJUDPPLQJ Daniel Terzella Leandro Amancio Eduardo Bruno Hadlich

Upload: others

Post on 21-Jan-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

*HQHULF 3URJUDPPLQJ

Daniel Terzella

Leandro Amancio

Eduardo Bruno Hadlich

Page 2: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

$XWRUHV

� 'DYL

5 � 0XVVHU

� $OH[DQGH

$ � 6WHSDQRY

� $UWLJ

DSUHVHQWDG

H

���� � H

5RP

±,WiOLD�

Page 3: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

3URJUDPDom *HQpULFD

� 'HILQLom

GR

$XWRUHV

� ³*HQHULF 3URJUDPPLQ

FHQWHU

DURXQ

WK

LGH

R

DEVWUDFWLQ

IUR

FRQFUHWH HIILFLHQ

DOJRULWKP

W

REWDL�

JHQHUL

DOJRULWKP

WKD

FD

E

FRPELQH�

ZLW

GLIIHUHQ

GDW

UHSUHVHQWDWLRQ�W

�SURGXF

� �

ZLG

YDULHW

R

XVHIX

VRIWZDUH�´

Page 4: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

3URJUDPDom *HQpULFD

� 2XWU

GHILQLomR

� 3URJUDPDom

*HQpULF

SRG�

VH

GHILQLG

FRP

³SURJUDPDom

FR�

FRQFHLWRV´ � RQG

X

FRQFHLW

p GHILQLG�

FRP

XP

IDPtOL

G

DEVWUDo}H

TX

Vm

UHODFLRQDGD

SR

X

FRQMXQW

FRPX�

G

UHTXLVLWRV�

Page 5: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

$QDORJLD

Page 6: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

&ODVVLILFDom GD $EVWUDo}HV

� $EVWUDom

G

GDGRV

� 7LSR

G

GDGR

� �

RSHUDo}H�

GHILQLGD

VREU

� �

OHV

� 3RGH

VH

HQWHQGLGD�

LQGHSHQGHQWHPHQW

G

VX

LPSOHPHQWDomR� 3LOKDV � /LVWDV � )LODV

Page 7: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

&ODVVLILFDom GD $EVWUDo}HV

� $EVWUDom

G

DOJRULWPRV

� )DPtOLD

G

DEVWUDo}H

G�

GDGR

FR

RSHUDo}H

FRPXQ

HQWU� �

OHV� $OJRULWPR

G

RUGHQDom�

SDU

OLVWDV

LOKD

� �

ILODV

Page 8: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

,GpLDV�FKDYH

� (OHYD

� �

QtYH

G

DEVWUDom

G

DOJRULWPR

FRQFUHWR

� �

H

SHUGH

HILFLrQFLD�

� 8WLOL]D

DOJRULWPR

� �

H

V

SUHRFXSD

FR

DEVWUDom

G

GDGRV�

� 5HSUHVHQWDo}H

ODUJDPHQW

DGDSWiYHL

SDU

VXSRUWD

VH

� �

V

GLUHW

Q

FRQVWUXom

G

VRIWZDUH�

Page 9: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

8WLOL]DomR

� 'HILQLom

G

XP

FODVV

JHQpULF�

p IHLW

XP

~QLF

YH

� � �

O

p UHXWLOL]DG

DWUDYp�

G

HQYL

G

SDUkPHWURV � �3DUDPHWUL]DomR�

� (VSHFLILFDom

GR

DOJRULWPR

H

WHPS

G

FRPSLODomR�

� 67

H

&��

Page 10: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

([HPSO DEVWUDWR

� &ODVVH

FRQFUHWDV

� 5HDOBVWDFN � ,QWHJHUBVWDFN � %RRNBVWDFN

� &ODVV

JHQpULFD

� 6WDFN>*

� RQG

� � �

X

SDUkPHWU

JHQpULFR

� &ODVV

UHXWLOL]iYH

H

GLYHUVD

DSOLFDo}HV

Page 11: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

7HPSODWHV

� 'HILQLomR

Vm

XP

� �

ERUGDJH

SDU

SURJUDPDom

JHQpULFD � XP

HVWUDWpJL

G

SURJUDPDom�

Q�

TXD

FRQMXQWR

G

DOJRULWPR

Vm

SDUDPHWUL]DGR

SR

XP

YDULHGDG

G

WLSR

G

GDGRV�HVWUXWXUD

G

GDGR

DGHTXDGDV�

PHFDQLVP

GH 7HPSODWHV H

&�

SHUPLW

TX

X

WLS

VHM

XP

SDUkPHWU

Q

GHILQLom

G

XP

FODVV

R

IXQomR �

� 6H

XV

DEU

QRYD

SRVVLELOLGDGH

Q

OLQJXDJHP � WDL

FRP

� �

GHVFULom�

G

DOJRULWPR

TX

V

[HFXWD

H

WHPS

G

FRPSLODomR ��

JHUDom

� �

WLPL]DG

G

FyGLJR

� � �

UHXV

G

FyGLJR�

Page 12: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

7HPSODWHV

XV

G

7HPSODWH

� � �

PRVWUR

HVVHQFLD�

Q�

SURMHW

G

ELEOLRWHF

SDGUm

G

&

� �

�67/� � XP�

YH

TX

D

HVWUXWXUD

� �

DOJRULWPR

O

GHILQLGR�

GHYH

VH

G

XV

JHUD

VH

FRPSURPHWH

VX

HILFLrQFLD $VVLP � YiULR

DOJRULWPR

SRGH

VH

XVDGR�

FR

YiULD

HVWUXWXUD

G

GDGRV

Page 13: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

7HPSODWHV

� 8P WHPSODWH Qm

FDXV

SHUG

G

GHVHPSHQKR

WUDQVIRUPDom

G

XP WHPSODWH �DEVWUDWR

� �

XP

FODVV

�FRQFUHWD

� �

IHLW

H

WHPS�

G�

FRPSLODomR

WDPEp

Qm

LPSOLF

Q

UHGXom�

G

TXDQWLGDG

G

FyGLJ

JHUDGR

V

WHQK

H

H

�SURMHW

GXD

FODVVH

GHULYDGD

G

XP WHPSODWH � FyGLJ

VHU

JHUDG

G

IRUP

HTXLYDOHQW� �

GHILQLom

GLUHW

G

GXD

FODVVH

Qm

UHODFLRQDGDV �

Page 14: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

7HPSODWHV

� 'HFODUDom

G

WHPSODWH� FRPHo

FR� �

SDODYU

FKDY

WHPSODW

VHJXLG

SR

XP

OLVW�

G�

SDUkPHWUR

G

WLSR

IRUPDL

FRORFDG

HQWU

R� �

tPEROR

� �

! �

7RG

SDUkPHWU

IRUPD

SUHFHGLG�

SHO

SDODYUD�FKDY

W\SHQDP

R

SHO

SDODYUD�FKDYH FODVV�

� 3DUkPHWUR

G

WLSR�

IRUPDL

Vm

WLSR

SULPLWLYR

R

WLSR

GHILQLGR

SHO�

SURJUDPDGRU � XVDGR

SDU

HVSHFLILFD

R

WLSR�

G�SDUkPHWUR

G

FODVV

R

IXQomR �

WLS

G�

UHWRUQ

G

IXQom

� �

SDU

GHFODUD

YDULiYHL

GHQWU�

G

FRUS

G

IXQomR�

Page 15: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

([HPSO )XQom *HQpULFD

template < class T>T maximum (T value1, T value2, T value3){

T max = value1;if (value2 > max)

max = value2;

if (value3 > max)max = value3;

retunr max;}

Page 16: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

8V G )XQom *HQpULFD

//versão para inteirosint main (){

int int1, int2, int3cout << “ Forneça 3 va lores inteiros: ” ;cin >> int1 >> int2 >> int3;cout << “ O maior valor inteiro é: ”

<< maximum (int1, int2, int3);���

Page 17: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

8V G )XQom *HQpULFD

...//versão para doubledouble double1, double2, double3

cout << “ Forneça 3 valores double: ” ;cin >> double1 >> double2 >> double3;cout << “ O maior valor double é: ”

<< maximum (double1, double2, double3);...

Page 18: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

8V G )XQom *HQpULFD...//versão para caractereschar char1, char2, char3

cout << “ forneça 3 caracteres: ” ;cin >> char1 >> char2 >> char3;cout << “ O maior valor de caractere é: ”

<< maximum (char1, char2, char3);

return 0;} //fim do main

Page 19: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

5HVXOWDG G 8V G )XQomR

Forneça 3 valores inteiros: 1 2 3O maior valor inteiro é: 3

Forneça 3 valores double: 3.3 2.2 1.1O maior valor double é: 3.3

Forneça 3 caracteres: A C BO maior valor de caractere é: C

Page 20: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

5HVXOWDG G XV G )XQomR

� 5HVXWDGR G

FRPSLODom

� � �

PHVP

TX�

V�

IRVVH

HVFULWD

� �

IXQo}H

GLIHUHQWH

SDU

FDG�

WLSR � R

VHMD �

FRPSLODG

XP

IXQom

SDU

RSHUD�

FR

LQW � XP

SDU

GRXEOH

RXWU

SDU

FKDU�

� 4XDQG

� �

IHLW

� �

FRPSLODomR � WRGD

D

UHIHUrQFLD

IHLWD

� �

FODVV

Q

IXQom�

JHQpULF

Vm

VXEVWLWXtGD

SHO

WLS

HQYLDG�

SR�

SDUkPHWUR�

Page 21: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

([HPSO G )XQom &RPSLODGD

int maximum (int value1, int value2, int value3){

int max = value1;if (value2 > max)

max = value2;

if (value3 > max)max = value3;

retunr max;}

Page 22: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

8V G )XQom SR

XP &ODVVH

3HVVRD

SB1RPHSB,GDGHSB5*SB$OWXUD

Se fossem passados para a função 3 Objetos da classe Pessoa?

Page 23: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

)XQom

&RPSLODG

FR &ODVV

3HVVRD

Pessoa maximum (Pessoa value1, value2, value3){Pessoa max = value1;if (value2 > max)

max = value2;

if (value3 > max)max = value3;

retunr max;}

Como fazer “Pessoa1 > Pessoa2” ?

Page 24: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

)XQom

*HQpULF

FR &ODVV

3HVVRD

� 4XDQG

V

� �

VFUHYH

� �

IXQom

JHQpULF�

Qm�

V

VDEL

� �

SULRU

TXD

� �

PpWRG

TX

FRPSDU�

R

GDGRV �

MXVWDPHQW

SRUTX

� �

FODVV

TX

FKDP

HVV

PpWRG

JHQpULF

�template� �

� $SHQD

DEH�V

TX

SDU�

TX

XP

FODVV

G

� �

QWUDG

SRVV

XVD

HVV

IXQomR �

SUHFLV

TX

� �

PpWRG

operator> HVWHM

GHILQLGR�

Page 25: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

6REUHFDUJD

� 6REUHFDUJ

REMHWLY

IRUQHFH

SDU�

WLSR

GHILQLGR

SHO

XVXiUL

D

PHVPD�

H[SUHVV}H

TX

&

� �

IRUQHF

SDU

VHX�

WLSR�

SULPLWLYRV�

� &RP

SRGHPR

� �

DEH�

TXH

��

PDLR

SHVVRD"R: Pode ser visto pela Altura. A maior pessoaé a mais alta!

Page 26: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

6REUHFDUJD

� 'HYH�V

VREUHFDUUHJD

� �

RSHUDGR�

G�

! SDU

TX

� �

FODVV

SHVVR

SRVV

XVD

� �IXQomR�

3HVVRD

SB1RPHSB,GDGHSB5*SB$OWXUD

RSHUDWRU!

Page 27: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

6REUHFDUJD

Exemplo de função sob recarregada: //recebe objeto pessoa como parâmetroboo l operator> (Pessoa &A) { return (p_Altura > A.p_Altura) }

Na função genérica quando for feito:if (value1 > max)

seria como se estivesse chamando uma função da classe:value1.operator>(max);

2%6

2XWU

� �

SHUDGR�

TX

GHYHUL

VH

VREUHFDUUHJDG

VHULD

� �

SHUDGR�

G�

DWULEXLom

� ��

Page 28: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

6REUHFDUJD

� ([LVWH

YiULD

PDQHLUD

G

V

VREUHFDUUHJD

SRUpP � EDVWD�V

VDEH

TX

VREUHFDUJ

� �

X

UHFXUV�

IDFLOLWDGR

SDU

� �

SURJUDPDom

JHQpULF

XVDQG�

WHPSODWH

H

&�� �� 6REUHFDUJ

� �

X

SURFHGLPHQW

EH

FRPX

Q�

/LQJXDJH

&�� � SR

H[HPSO

� � �

SHUDGR

VRP

��

H[HFXW�

G

PDQHLUD

GLIHUHQWH

SDUD LQWV� IORDWV � GRXEOHV SRL

M

IRUD

VREUHFDUUHJDGR

Q

OLQJXDJH

&���

� 0D

SDU

TX

LVV

RFRUU�

GHYH�V

WH

FODVVH

� �

IXQo}H

EH

GRFXPHQWDGD

SDU

TX�

VH

XVXiUL

WHQK

QRom

G

TX

PpWRGR

FULD

Q

VX�

FODVV

SDU

XVD

GHWHUPLQDG

FODVV

R

IXQom

JHQpULFD�

Page 29: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

0DL G X 3DUkPHWUR

� REVHUYDom

LPSRUWDQWH�

FRP

SUHFLVDPR

GHILQL

� �

LQVWDQFLDomR H

WHPS

G

FRPSLODomR � FHUWR

SDUkPHWUR

GHYH

VH

LQVWDQFLDGR

SR

OLWHUDLV�

YRL

I�LQW L

%XIIHU�LQW � L! E[

��HUU

`

� X

WHPSODWH SRG

WH

PDL

G

X

SDUkPHWUR � 3RU H[HPSOR�

WHPSODWH�FOD

� �

7� LQW L

FODV

%XIIH� �

Y>L@�

LQ

V]

SXEOLF

%XIIHU�

� V]�L

^`

������`

%XIIHU�IORDW � ���! FEXI�

Page 30: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

(VSHFLDOL]DomR�

WHPSODWH JHQpULF

GHY

VH

GHFODUDG

DQWH

G�

TXDOTXH

HVSHFLDOL]DomR

� WHPSODWH�FODVV 7

FOD

� �

/LVW ^� ��� �`�

��WHPSODWHJHQpULF

� WHPSODWH�FODVV 7

FOD

� �

/LVW�7

^� ��� �`

��WHPSODWH HVSHFLDOL]DG

H

SRQWHLURV

� 1HVW

VLWXDomR �

FRPSLODGR�

SULPHLUDPHQW

LU

SURFXUD

WHPSODW

HVSHFLDOL]DG

� /LVW�SRQWHLUR!

DQWH

G

TXDOTXHUWHPSODW

/LVW SDUDPHWUL]DG

SR

X

SRQWHLUR �

� 'HVW

IRUPD � FULD�V�

FR

� �

HQR

WUDEDOK

XP

LQWHUIDF

SDU

XP

FODVV

PDL�

JHQpULF

� �

D

PHVP

WHPS

XP

~QLF

FODVV

SDU

WRGR

R

WLSR

G

/LVW

G

SRQWHLUR�

Page 31: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

3ROLPRUILVP 7HPSODWHV

� WHPSODWHV

IXQo}H

YLUWXDL

WH

REMHWLYR�

EDVWDQW

VHPHOKDQWHV� SHUPLWH

��

FULDom�

G

FRQMXQWR

G

WLSR

G

GDGR

FRPSDUWLOKDQG

�XP

LQWHUIDF

H

FRPXP �

� )XQo}H

YLUWXDL

IRUQHFH

X

�WLS

�G

FRPSRUWDPHQWRSROLPyUILFR H

WHPS

G

� �

[HFXomR HQTXDQWR WHPSODWHVDJH

H

WHPS

G

FRPSLODomR �

� 4XDQG

XWLOL]D

X�

R�

RXWUR"

Page 32: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

3ROLPRUILVP 7HPSODWHV

funções virtuais são adequadas quando existe uma hierarquia entre as classes que compartilham aquela interface, possibilitando uma forma elegante de permitir diferentes implementações de um mesmo método

$QLPDO

6 � 'LJHVWLYR

*DOLQKD

6 � 'LJHVWLYR

+XPDQR

6 � 'LJHVWLYR

Page 33: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

3ROLPRUILVP 7HPSODWHV

� WHPSODWHV WUDWD

VXD

FODVVH

LQVWDQFLDGD�

H�

LJXD

QtYH

KLHUiUTXLFR �

LPSOHPHQWDom

G

X

� �pWRG

� �

~QLFD

SRGHP�V

XWLOL]D

HVSHFLDOL]Do}H

SDU

GHWHUPLQD

D

OLJHLUD

GLIHUHQoD

HQWU

D

FODVVH�

�V�

QHFHVViULR� �

HQTXDQW

� �

DOJRULWP

SULQFLSD� � �

PHVP

SDU

HVW

FRQMXQW

G

FODVVHV �

� $Op

GLVVR � SR

TXHVW}H�G

�HILFLrQFLD � SRG

VH

PDL

LQWHUHVVDQW

UHRUJDQL]DGHWHUPLQDGR

PpWRGR

H

WHPSODWHV D

LQYp

G�

GLVWULEXt�ORV H

IXQo}H

YLUWXDL

SUHVHQWH

H

GLIHUHQWH

FODVVHV�

Page 34: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

3ROLPRUILVP 7HPSODWHV

� H[HPSO

JHQpULFR

FRQKHFHPR

� �

FRQFHLW� � �

FRPSRUWDPHQW

G

XP

SLOK

�³~OWLP� �

HQWUD

� � �

SULPHLU

� �

VDLU´

VH

HVP

VDEH�

GR

WLSR

G

LWHQ

TX

HVWm

LQVHULGR

QHOD � 0D

TXDQG�

FKHJ

Q

PRPHQW

G

HIHWLYDPHQW

LQVWDQFLD

XP

SLOKD � X

WLS

G

GDGR

GHY

VH

HVSHFLILFDGR � 1HFHVVLWDPR

G

PHLR

G

GHVFUHYH

� �

QRom

G

SLOK

JHQHULFDPHQW

� �

LQVWDQFLD

FODVVH

TX

Vm

YHUV}H

GHVW

FODVV�

JHQpULF

G

SLOK

SDU

WLSR

HVSHFtILFR

G

SLOKD � (VW

UHFXUV

� �

IRUQHFLG

SR

7HPSODWHV�

3LOK

*HQpULF

�/,)2�

[\Z]DE

Page 35: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

([HPSO G &ODVV *HQpULFD

//declaração da classe Pilhatemplate< class T> class Stack{public:

Stack (int = 10); //construtor default (tamanho da pilha 10)~Stack() { delete[] stackPtr;} //destruidorboll push ( const T&); //insere um elemento na pilha

private:int size ; //quantidade de elementos na Pilhaint top; //posição do elemento no topo da pilhaT *stackPtr; //ponteiro para pilha

boll isEmpty() const {retunr top == -1;}boll isFull() const {retunr top == size - 1;}

};

Page 36: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

([HPSO G &ODVV *HQpULFD//Construtor com tamanho default 10template<class T>Stack<T>::Stack ( int s ) {

size = (s > 0 ? s : 10);top = -1; //inicialmente stack está vaziastackPtr = new T[ size ] //aloca espaço para elementos

}// insere um elemento na pilha (retorna 1 se bem sucedida e 0 caso contrário)template < class T >boll stack <T>:: push ( const T &pushValue){

if ( ! IsFull() ) {stackPtr[ ++top ] = pushValue; //coloca item em Satckretunr true; //push bem sucedida

}else { retunr false; } //push mal sucedida

}

Page 37: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

([HPSO G &ODVV *HQpULFD

//retira um elemento da pilhatemplate< class T >boll stack <T>:: pop ( T &popValue){

if ( ! isEmpty() ){popValue = stackPtr[ top- ]; //remove item de stackreturn true; //operação pop bem sucedida

}return false; //pop mal sucedido}

Page 38: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

8V G &ODVV 3LOK *HQpULFDint main(){//uso da pilha com doublestack < dou ble > doubleStack(5);dou ble f = 1.1;cout << “ Inserindo elementos em doub leStack\n”

while ( doubleStack.push( f ) ) //sucesso true retornado{ cout << f << ‘ ’ ;

f += 1.1; }

cout << “ \nStack está cheia. Não pod e inserir ” << f << “ \nRetirando elementos de doubleStack\n ” ;

while (doubleStack.pop ( f ) ) //sucesso: true retornadocout << f << ‘ ’;

cout << “ \nStack está vazia. Não pod e retirar\n” ;

Page 39: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

8V G &ODVV 3LOK *HQpULFD... //uso da pilha com inteiroStack< int > inStack; //usa construtor defaultInt i = 1;cout << “ Inserindo elementos em intStack\n”

while ( intStack.push( i ) ) //sucesso true retornado{ cout << i << ‘ ’ ;

++i; }

cout << “ \nStack está cheia. Não pod e inserir ” << i<< “ \nRetirando elementos de intStack\n ” ;

while (intStack.pop ( i ) ) //sucesso: true retornadocout << i << ‘ ’;

cout << “ \nStack está vazia. Não pod e retirar\n” ;

return 0; } //fim do main

Page 40: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

5HVXOWDG G 8V G 3LOKDInserindo elementos em doub leStacK1.1 2.2 3.3 4.4 5.5Stack está cheia não pode inserir 6.6

Retirando elementos de doub leStack5.5 4.4 3.3 2.2 1.1Stack está vazia. Não pode retirar

Inserindo elementos em intStack1 2 3 4 5 6 7 8 9 10Stack está cheia não pode inserir 11

Retirando elementos de intStack10 9 8 7 6 5 4 3 2 1Stack está vazia. Não pod e retirar

Page 41: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

6WDQGDU 7HPSODW /LEUDU\

� TX

67

"� $SURYDG

H

� � � ��

SHO

FRPLWr G�

SDGU}H

&��

� &ULDGRUHV

$OH[DQGHU 6WHSDQRY � 0HQJ /

� � �

'DYLG 0XVVHU

� %LEOLRWHF

SDGUm

G�

FRPSRQHQWH

UHXWLOL]iYHLV

67

p IRUPDG�

SR

WUr

HOHPHQWR

FKDYH

±FRQWrLQHUHV � LWHUDGRUHV

DOJRULWPR

Page 42: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

6WDQGDU 7HPSODW /LEUDU\

� 67/�

67/

$OJRULWPRV

&RQWHLQHUHV

,WHUDGRUHV

3URJ � *HQpULFD

Page 43: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

6WDQGDU 7HPSODW /LEUDU\

� &RQWrLQHUHV

� (VWUXWXUD

G

GDGR

SRSXODUH�

SDGURQL]DGDV � FULDGR

DSDUWLU G

WHPSODWHV �

XWLOL]DQGR�V

� �

SDUDGLJP�

G

SURJUDPDom

JHQpULFD� ([�

3LOKDV � /LVWDV � )LODV���

Page 44: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

6WDQGDU 7HPSODW /LEUDU\

� $OJRULWPRV

� 8WLOL]DGR

SDU

PDQLSXOD

R�

FRQWHLQHUHV� ([

,QVHULU � 'HOHWDU � 3URFXUDU � &ODVVLILFDU � � �

Page 45: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

6WDQGDU 7HPSODW /LEUDU\

� ,WHUDGRUHV

� 6m

XWLOL]DGR

SDU

DFHVVD�

HOHPHQWR

G

FRQWrLQHUHV

Page 46: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

6WDQGDU 7HPSODW /LEUDU\

� &RQWHLQHUHV

67

IR

FXLGDGRVDPHQW

SODQHMDG

G

PDQHLU

TX

R

FRQWrLQHUH�

IRUQHoD

IXQFLRQDOLGDGH

VLPLODUHV � G

IRUP

TX

H[LVWD

RSHUDo}H�

JHQpULFD

� �

RXWUD

RSHUDo}H

TX

V�

DSOLFD

� �

VXEFRQMXQWR

G

FRQWHLQHUHV VLPLODUHV�

� ([

IXQom

VL]H �DSOLFDG

� �

WRGR

FRQWHLQHUHV�

� ([

IXQom

HUDVHU �DSHQD

FRQWrLQHUH

G

VXEFODVV

$GDSWDGRUHV�

Page 47: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

6WDQGDU 7HPSODW /LEUDU\

� 5HODom

� � �

Q

&RQWrLQHU $OJRULWPRQ Q

� 8

DOJRULWP

SRG�

VH�

XWLOL]DGR SRUYiULRV FRQWHLQHUHV

� 8P FRQWrLQHU SRG

XWLOL]D

YiULR

DOJRULWPRV

Page 48: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

6WDQGDU 7HPSODW /LEUDU\

� 2XWUD

ELEOLRWHFDV

� $OJRULWPR

FRQVWUXLGRV QD�

FODVVH

G

FRQWHLQHUHV

$OJRULWP�

$

&RQWrLQHU

$OJRULWP�%

$OJRULWP

&

Page 49: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

6WDQGDU 7HPSODW /LEUDU\

� ([HPSOR�

// container

list<string> Friends;

// iterator to the begin

list<string>::iterator begin = Friends.begin()of the container

// iterator to the end of the container

list<string>::iterator end = Friends.end() of the container

// algorithm find() search for "Philippe" in the container

if (find(Friends.begin(),Friends.end(),"Philippe") != Friends.end())

FRXW

� �

�3KLOLSS

L

� �

IULHQ�

R

PLQH

HQG�

Page 50: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

6WDQGDU 7HPSODW /LEUDU\

� 9DQWDJHP

� 8VDQG

� �

67/ � SRGHPR

HFRQRPL]D

WHPS

� �

VIRUo

FRQVLGHUiYHL

G�

SURJUDPDom

� �

REWH

FRP

UHVXOWDG�

VRIWZDUH

G

PDLR

TXDOLGDGH�

� GHVHQYROYHGR�

Qm

SHUG

WHPS

Q

FRQVWUXom

G�

FRPSRQHQWH

TX

M

H[LVWH

Q

ELEOLRWHFD

� 6RIWZDUH�

G

PDLR

TXDOLGDGH

Page 51: Daniel Terzella Leandro Amancio Eduardo Bruno …...7HPSODWHV — ’HFODUDom G WHPSODWH˛ FRPHo FR SDODYU FKDY WHPSODW VHJXLG SR XP OLVW G SDUkPHWUR G WLSR IRUPDL FRORFDG HQWU R tPEROR

3URJUDPDom *HQpULFD

� /LQNV�

� *HQHUL

3URJUDPPLQJ

� KWWS���ZZZ�FV�USL�HGX�aPXVVHU�JS

� 67/

�KWWS���ZZZ�VJL�FRP�7HFKQRORJ\�67/

�KWWS���ZZZ�GHO�XIUM�EU�aYLOODV

�KWWS���ZZZ�FV�USL�HGX�SURMHFWV�67/�VWO�VWO�KWPO

�KWWS���ZZZ�LVHO�LSO�SW�$JHQGD�VHPLQDULR��KWPO