Autoria: Carlos Eduardo Cayres | 4

Livre

0
0
14
1 year ago
Preview
Full text

  Autoria: Carlos Eduardo Cayres | 4 semestre Tema 01 Introdução às Estruturas de Dados

  

7HPD

Introdução às Estruturas de Dados

  

Autoria: Carlos Eduardo Cayres

Como citar esse documento:

CAYRES, Carlos Eduardo. Estrutura de Dados: Introdução às Estruturas de Dados. Valinhos: Anhanguera Educacional, 2014.

  

Índice

POR DO CONVITE LEITURA

  À

Pág. 3 Pág. 3

ACOMPANHE WEB

  NA

Pág. 19 Pág. 20

Pág. 22 Pág. 22

Pág. 23 Pág. 23

  

‹ $QKDQJXHUD (GXFDFLRQDO 3URLELGD D UHSURGXomR ¿QDO RX SDUFLDO SRU TXDOTXHU PHLR GH LPSUHVVmR HP IRUPD LGrQWLFD UHVXPLGD RX PRGL¿FDGD HP OtQJXD

CONVITE LEITURA

  

À

  Neste tema, você vai estudar os conceitos básicos sobre Estrutura de Dados, que é o nome dado à forma de organizar dados visando otimizar seu uso. Abordaremos as principais estruturas de dados que podem ser aplicadas na maioria dos problemas com sucesso.

  

Estrutura de dados é um dos fundamentos da computação empregados em diversas áreas para resolver os problemas

  mais variados. Para início de conversa, devemos resgatar o conceito de algoritmos, que são estruturas de programação utilizadas para manipular dados, facilitando a compreensão da manipulação das estruturas de dados. As estruturas de dados estão em constante aprimoramento, bem como os algoritmos e as linguagens de programação, GL¿FXOWDQGR D HVFROKD GD HVWUXWXUD GH GDGRV LGHDO SDUD D VROXomR GH GHWHUPLQDGR SUREOHPD $LQGD DVVLP DOJXPDV HVWUXWXUDV FRQVLGHUDGDV FOiVVLFDV VmR VHPSUH XPD ERD RSomR GH¿QLQGR XP SDGUmR GH HVWUXWXUDV GH GDGRV SDUD D

  VROXomR GH GHVD¿RV

  VROXomR GH GHVD¿RV

POR DO

  Introdução às Estruturas de Dados I t d ã à E t t d D d

  Computadores são máquinas que manipulam dados e informações. A computação abrange o estudo da forma como as informações são organizadas, manipuladas e utilizadas em um computador. Ao desenvolver um programa para realizar o processamento de dados, é preciso transcrever de forma que o computador possa compreender e executar tal programa e que o programador também compreenda o que escreveu. As linguagens de programação são códigos escritos em uma linguagem que o programador compreende e que o computador consegue interpretar e executar.

POR DO

  4XDO p R YHUGDGHLUR VLJQL¿FDGR GH informação ? Por um lado, o conceito de informação na ciência da computação p VHPHOKDQWH DRV FRQFHLWRV GH SRQWR OLQKD H SODQR QD JHRPHWULD WRGRV HOHV VmR WHUPRV LQGH¿QLGRV VREUH RV TXDLV SRGHP VHU IHLWDV D¿UPDo}HV PDV HOHV SRGHP VHU H[SOLFDGRV HP WHUPRV GH FRQFHLWRV HOHPHQWDUHV (TENENBAUM; LANGSAM; AUGENSTEIN, 1995).

  Inteiros Binários e Decimais

  O sistema numérico binário é a base do funcionamento dos computadores. O sistema numérico transforma os dados em 0 e 1, e só assim podem ser armazenados na memória. Os dígitos binários são organizados na memória em byte (oito 0 e 1 agrupados, 8 bits), sendo que cada byte é associado a um endereço de memória, o que facilita sua LGHQWL¿FDomR H ORFDOL]DomR

  1RV VLVWHPDV FRPSXWDFLRQDLV RV FDUDFWHUHV OHWUDV Q~PHURV H VtPERORV VmR LGHQWL¿FDGRV SRU XP FDUDFWHUH QXPpULFR correspondente na tabela ASCII, sendo esse caractere numérico convertido em binário para, posteriormente, ser armazenado na memória. $VVLP FDGD YDULiYHO p DVVRFLDGD D XPD SRVLomR GH PHPyULD WHQGR FRPR FDUDFWHUtVWLFD XP QRPH H XP WLSR SUHGH¿QLGRV Variáveis podem armazenar valores diferentes ao longo da execução de um programa, mas armazenam um único valor a cada passo da execução.

  Tipos de Dados

  Na maioria dos problemas resolvidos computacionalmente, os tipos de dados , numérico (números inteiros, real etc.), literal (caractere ou string), estão entre o mais comuns.

  Dados do Tipo Numérico

  Tipos de dados como números inteiros não possuem casas decimais, podendo ser números positivos ou números negativos. Para armazenar um dado numérico do tipo inteiro, são necessários 2 bytes de memória (o espaço para armazenamento pode variar dependendo da linguagem de programação).

  Exemplos de dados numéricos inteiros:

  1025

  • 33

  78

  • 25301 Tipo de dados como números reais possuem casas decimais, podendo ser números positivos ou números negativos. Para armazenar um dado numérico real, são necessários 4 bytes de memória (o espaço para armazenamento pode variar dependendo da linguagem de programação).

  Exemplos de dados numéricos reais:

  13.35 123.51

  • 21.08

  0.0 Dados do Tipo Literal ou Caractere São tipos de dados formados por um caractere ou por uma cadeia de caracteres justapostos. Os caracteres podem ser letras minúsculas, letras maiúsculas, números e caracteres especiais. Para armazenar um dado do tipo caractere na memória do computador, é necessário um byte por caractere.

  Exemplos de dados literais:

  ‘teste’ ‘1 + 4’ ‘exemplos!’

POR DO

  Tipos de Variáveis em C

  1D OLQJXDJHP & DV YDULiYHLV GHYHP VHU GHFODUDGDV GHSRLV GD GH¿QLomR GR WLSR GH YDULiYHO 2V WLSRV LQW DUPD]HQDU Q~PHURV LQWHLURV ÀRDW DUPD]HQDU Q~PHURV UHDLV H FKDU DUPD]HQDU XP FDUDFWHUH VmR RV WLSRV GH GDGRV PDLV XWLOL]DGRV na linguagem C.

  3DUD DUPD]HQDU XPD FDGHLD GH FDUDFWHUH QD OLQJXDJHP & GHYH VH XWLOL]DU XP YHWRU GH HOHPHQWRV GR WLSR FKDU

  Exemplos de declarações:

  ÀRDW D E 'HFODUDomR GH XPD YDULiYHO FKDPDGD a H RXWUD FKDPDGD b para armazenar um número real cada uma. FKDU VH[R 'HFODUDomR GH XPD YDULiYHO FKDPDGD sexo para armazenar um caractere. FKDU QRPH> @ 'HFODUDomR GH XPD YDULiYHO FKDPDGD nome para armazenar trinta caracteres.

  Vetor na Linguagem C

  2V YHWRUHV WDPEpP FKDPDGRV GH YDULiYHLV FRPSRVWDV KRPRJrQHDV XQLGLPHQVLRQDLV DSUHVHQWDP FRPR XPD GH suas características a capacidade de armazenar vários valores (dados) com uma única referência de nome dado ao vetor, sendo diferenciados pelo índice do vetor.

  3DUD LGHQWL¿FDU DV SRVLo}HV GH XP YHWRU QD OLQJXDJHP & p UHFRPHQGiYHO LQLFLDU VHPSUH HP ]HUR H WHUPLQDU FRP R YDORU TXH LQGLFDU R WDPDQKR GR YHWRU TXDQWLGDGH GH SRVLo}HV GLVSRQtYHLV SDUD DUPD]HQDU GDGRV PHQRV XP

  Declaração de Vetor em C

  1D OLQJXDJHP & RV YHWRUHV SRGHP VHU LGHQWL¿FDGRV QD GHFODUDomR SRU FROFKHWHV GHSRLV GR QRPH GD YDULiYHO

2 Q~PHUR HQWUH RV FROFKHWHV LQGLFD TXDQWDV SRVLo}HV WHP R YHWRU RX VHMD D TXDQWLGDGH GH GDGRV TXH p FDSD] GH armazenar.

  Exemplo de vetor:

  9HMDPRV D GHFODUDomR GH XP YHWRU FKDPDGR YHW FRP SRVLo}HV GH PHPyULD LQLFLDQGR FRP tQGLFH H LQGR DWp p LJXDO DR WDPDQKR GR YHWRU 2 WLSR LQW QD GHFODUDomR GR YHWRU LQGLFD TXH SRGHUmR VHU DUPD]HQDGRV WLSRV GH GDGRV numéricos inteiros.

  LQW YHW> @ vet

  7

  2

  5

  10 3 21 44 23

  4

  9

  1

  2

  3

  4

  5

  6

  7

  8

  9 Atribuindo Valores a um Vetor em C ÀRDW YHW> @

  6LJQL¿FD TXH YHW QD SRVLomR UHFHEH SRU DWULEXLomR R YDORU

  Carregando Valores em um Vetor em C

  3DUD FDUUHJDU GDGRV HP XP YHWRU OHU GDGRV GR WHFODGR H DWULEXt ORV D XP YHWRU SRGHPRV XVDU R WUHFKR GH FyGLJR D

  VHJXLU

  IRU L L L

  VFDQI ³ G´ YHW>L@

  Imprimindo Valores de um Vetor em C

  IRU L L L SULQWI ³ G?Q´ YHW>L@

  ([HPSORV 9HWRUHV ௅ 3UREOHPDV 5HVROYLGRV QD /LQJXDJHP &

  Exemplo de um programa em C que carrega um vetor com 10 números inteiros, calcula e mostra dois vetores resultantes contendo os números positivos e os números negativos, respectivamente. Os vetores resultantes poderão ter 10 posições QR Pi[LPR VHQGR TXH QHP WRGDV DV SRVLo}HV SRGHUmR VHU SUHHQFKLGDV

POR DO

DENTRO TEMA

  LQFOXGH VWGLR K! int main() { LQW QXP> @ SRV> @ QHJ> @ L FRQW FRQWBQ FRQWBS FRQWBQ FRQWBS

  IRU L L L { SULQWI ³'LJLWH R G YDORU ³ L

  VFDQI ³ G´ QXP>L@ LI QXP>L@ !

  { SRV>FRQWBS@ QXP>L@

  FRQWBS } else { QHJ>FRQWBQ@ QXP>L@

  FRQWBQ } } LI FRQWBQ printf(“\nVetor de negativos vazio.\n”); else { SULQWI ³?Q9DORUHV QHJDWLYRV ?Q´

  IRU L L FRQWBQ L SULQWI ³ G ?Q´ QHJ>L@ } LI FRQWBS printf(“\nVetor de positivos vazio. \n”); else { SULQWI ³?Q9DORUHV SRVLWLYRV ?Q´

  IRU L L FRQWBS L SULQWI ³ G ?Q´ SRV>L@ } system(“PAUSE”); } Exemplo de um programa em C que faz a leitura de um vetor de 10 posições de números inteiros, colocando os números em ordem crescente durante a leitura.

LQFOXGH LRVWUHDP!

  LQFOXGH VWGLR K! int main() { LQW YHW> @ L M \ DX[

  IRU L L L ^ SULQWI ³'LJLWH XP Q~PHUR ³ scanf(“%d”, &aux); M ZKLOH YHW>M@ DX[ M L

POR DO

  M M

  IRU \ L \!M \ YHW>\@ YHW>\ @

  YHW>M@ DX[ } printf(“\nVetor Ordenado \n”);

  IRU L L L SULQWI ³ G ³ YHW>L@ system(“PAUSE”); } Exemplo de um programa em C que carrega dois vetores com 5 números inteiros cada. Na sequência, ordenar os vetores na ordem crescente. Imprimir um terceiro vetor com 10 posições em ordem crescente, resultante da intercalação dos dois vetores.

  3

  5

  4

  2

  1

  a

  1

  2

  3

  4

  5

  a

  1

  2

  3

  4

  5

  ordenado

  1

  2

  3

  4

  5

  11

  2

  4

  1

  6

  b

  1

  2

  3

  4

  5

  1

  2

  4

  6

  11

  b ordenado

  1

  2

  3

  4

  5

  1

  1

  2

  2

  3

  4

  4

  5

  6

  11

  res

  1

  2

  3

  4

  5

  6

  7

  8

  9

  10

LQFOXGH LRVWUHDP!

  LQFOXGH VWGLR K! int main() { LQW D> @ E> @ UHV> @ L M \ DX[

  IRU L L L { SULQWI ³'LJLWH R Gƒ YDORU GR YHWRU D ³ L

  VFDQI ³ G´ D>L@ }

  IRU L L L {

  IRU M M M {

  LI D>M@ ! D>M @ {

  DX[ D>M@ D>M@ D>M @ D>M @ DX[

  } }

  }

  IRU L L L { SULQWI ³'LJLWH R Gƒ YDORU GR YHWRU E ³ L

  VFDQI ³ G´ E>L@ `

POR DO

  IRU L L L {

  IRU M M M {

  LI E>M@ ! E>M @ {

  DX[ E>M@ E>M@ E>M @

  E>M @ DX[ } } } M

  IRU L L L { UHV>M@ D>L@ j++; UHV>M@ E>L@ j++; }

  IRU L L L {

  IRU M M M {

  LI UHV>M@ ! UHV>M @ {

  DX[ UHV>M@ UHV>M@ UHV>M @ UHV>M @ DX[

  } } } SULQWI ³?Q9HWRU D ?Q´

  IRU L L L SULQWI ³ G ³ D>L@ SULQWI ³?Q9HWRU E ?Q´

  IRU L L L SULQWI ³ G ³ E>L@ SULQWI ³?Q9HWRU UHVXOWDQWH ?Q´

  IRU L L L SULQWI ³ G ³ UHV>L@ system(“PAUSE”); }

  Matriz na Linguagem C

  0DWUL]HV SRGHP VHU GH¿QLGDV FRPR XP FRQMXQWR GH YDULiYHLV GH PHVPR WLSR LGHQWL¿FDGDV SHOR PHVPR QRPH 3DUD UHIHUHQFLDU DV SRVLo}HV GH PHPyULD GH XPD PDWUL] p SUHFLVR HVSHFL¿FDU VXDV SRVLo}HV GHQWUR GHVWD HVWUXWXUD

  1D OLQJXDJHP & XPD PDWUL] SRGH VHU GHFODUDGD FRPR XQLGLPHQVLRQDO PDLV FRQKHFLGD FRPR YHWRU ELGLPHQVLRQDO H multidimensional. (PERUD DV PDWUL]HV PDLV XWLOL]DGDV VHMDP DV ELGLPHQVLRQDLV DSHQDV GLPHQV}HV DOJXQV FRPSLODGRUHV SRGHP WUDEDOKDU com até 12 dimensões.

POR DO

  Declarando uma Matriz em C

  9HMDPRV D GHFODUDomR GH XPD PDWUL] FKDPDGD PDW FRP [ SRVLo}HV GH PHPyULD LQGLFDQGR TXH p XPD PDWUL] FRP OLQKDV H FROXQDV HP TXH RV tQGLFHV UHVSRQViYHLV SRU UHIHUHQFLDU DV SRVLo}HV GD PDWUL] GHYHP VHU LQLFLDGRV HP H LQGR DWp H DWp 2 WLSR ÀRDW QD GHFODUDomR GD PDWUL] LQGLFD TXH SRGHUmR VHU DUPD]HQDGRV WLSRV GH GDGRV numéricos reais.

  ÀRDW PDW> @> @ A exemplo dos vetores, os índices da matriz devem começar sempre em 0 (zero). Na declaração apresentada, a variável FKDPDGD PDW FRQWpP OLQKDV D H FROXQDV D FDSD]HV GH DUPD]HQDU Q~PHURV UHDLV FRPR SRGH VHU REVHUYDGR D VHJXLU

  1

  2

  3

  mat 0

  1

  2 Atribuindo Valores a uma Matriz em C PDW> @> @

2 YDORU VHUi DWULEXtGR j SRVLomR UHIHUHQWH j OLQKD  OLQKD FROXQD  FROXQD GD PDWUL]

  1

  2

  3

  mat

  1

  2

  3

  Carregando Valores em uma Matriz em C

  3DUD FDUUHJDU GDGRV HP XPD PDWUL] OHU GDGRV GR WHFODGR H DWULEXt ORV D XPD PDWUL] SRGHPRV XVDU R WUHFKR GH FyGLJR D VHJXLU

  IRU L L L {

  IRU M M M

  VFDQI ³ G´ PDW>L@>M@ }

  1R H[HPSOR DSUHVHQWDGR REVHUYDPRV XPD PDWUL] FRP OLQKDV SRUWDQWR R FRPDQGR IRU PDLV H[WHUQR YDULRX GH D SDUD SHUFRUUHU DV OLQKDV GD PDWUL] H R FRPDQGR IRU PDLV LQWHUQR YDULRX GH D SDUD SHUFRUUHU DV FROXQDV GD matriz).

  Imprimindo os Dados de uma Matriz em C

  3DUD LPSULPLU PRVWUDU RV YDORUHV GD PDWUL] GR H[HPSOR DQWHULRU SRGHPRV XVDU R FyGLJR D VHJXLU

  IRU L L L {

  IRU M M M SULQWI ³ G ?Q´ PDW>L@>M@ }

  ([HPSORV 0DWUL] ௅ 3UREOHPDV 5HVROYLGRV QD /LQJXDJHP &

  ([HPSOR GH XP SURJUDPD HP & TXH FDUUHJD XPD PDWUL] [ FRP D SRQWXDomR GH JLQDVWDV HP DSDUHOKRV /LVWDU R Q~PHUR GR JLQDVWD Q~PHUR GD OLQKD H DSDUHOKR HP TXH FDGD JLQDVWD REWHYH PHQRU QRWD 3DUD ¿QDOL]DU OLVWDU D TXDQWLGDGH GH JLQDVWDV FRP PHQRU QRWD QR SULPHLUR DSDUHOKR D TXDQWLGDGH GH JLQDVWDV FRP PHQRU QRWD QR VHJXQGR DSDUHOKR H D TXDQWLGDGH GH JLQDVWDV FRP PHQRU QRWD QR WHUFHLUR DSDUHOKR

POR DO

DENTRO TEMA

  LQFOXGH VWGLR K! int main() { ÀRDW QRWDV> @> @ PHQRU LQW D D D PHQRUBQRWD L M

  IRU L L L {

  IRU M M M {

  SULQWI ³?Q'LJLWH D G QRWD GR JLQDVWD G ³ M L

  VFDQI ³ I´ QRWDV>L@>M@ } } D D D

  IRU L L L { SULQWI ³?Q*LQDVWD Q~PHUR G´ L PHQRU QRWDV>L@> @ PHQRUBQRWD

  IRU M M M {

  LI QRWDV>L@>M@ PHQRU {

  PHQRU QRWDV>L@>M@

  } } SULQWI ³?Q$ PHQRU QRWD GR JLQDVWD G IRL QR G DSDUHOKR ´ L PHQRUBQRWD LI PHQRUBQRWD D D LI PHQRUBQRWD D D LI PHQRUBQRWD D D } SULQWI ³?Q4XDQWLGDGH GH JLQDVWDV FRP PHQRU QRWD QR DSDUHOKR G ´ D SULQWI ³?Q4XDQWLGDGH GH JLQDVWDV FRP PHQRU QRWD QR DSDUHOKR G ´ D SULQWI ³?Q4XDQWLGDGH GH JLQDVWDV FRP PHQRU QRWD QR DSDUHOKR G ´ D system(“PAUSE”); } ([HPSOR GH XP SURJUDPD HP & TXH FDUUHJD XPD PDWUL] [ FRP Q~PHURV LQWHLURV H FDOFXOD D VRPD GH FDGD OLQKD 2 resultado da soma deverá ser armazenado em um vetor. Em seguida, o programa deverá multiplicar cada elemento da PDWUL] SHOD VRPD GD VXD OLQKD H LPSULPLU D PDWUL] UHVXOWDQWH

LQFOXGH LRVWUHDP!

  LQFOXGH VWGLR K! int main() { LQW PDW> @> @ VRPD> @ L M SULQWI ³?Q'LJLWH RV HOHPHQWRV GD PDWLU] ?Q´

POR DO

  IRU L L L {

  IRU M M M {

  SULQWI ³?Q0DW> G@> G@ ³ L M

  VFDQI ³ G´ PDW>L@>M@ }

  }

  IRU L L L {

  VRPD>L@

  IRU M M M

  VRPD>L@ VRPD>L@ PDW>L@>M@ }

  IRU L L L {

  IRU M M M PDW>L@>M@ PDW>L@>M@ VRPD>L@ } printf(“\nMatriz resultante”);

  IRU L L L { SULQWI ³?Q/LQKD G ?Q´ L

  IRU M M M SULQWI ³ G ³ PDW>L@>M@ } system(“PAUSE”);

  

ACOMPANHE WEB

NA /(( +XHL 'LDQD 3(5(6 )DELDQD ) ) 0$57,16 $QD 3DXOD ,QWURGXomR H &RQFHLWRV 7LSRV GH 'DGRV (VWUXWXUDV GH 'DGRV H 7LSRV $EVWUDWRV GH 'DGRV

  • Estruturas de dados é o nome dado à organização de dados de forma coerente e racional, EXVFDQGR PHOKRUDU VHX XVR 'HSHQGHQGR GH FRPR XP FRQMXQWR GH GDGRV p RUJDQL]DGR H GH FRPR as operações são efetuadas sobre esses dados, é possível solucionar problemas complexos de forma simples.

  'LVSRQtYHO HP KWWS ZZZ IR] XQLRHVWH EU aIUDWD DHG PDWHULDOBGLGDWLFRBDHG R%LP $XOD SGI! $FHVVR HP

  • +(&. -81,25 9LOVRQ /yJLFD GH 3URJUDPDomR $OJRULWPRV H (VWUXWXUDV GH 'DGRV
    • Vários são os modelos de estruturas de dados, sendo alguns bastante clássicos. Ainda assim, QRYRV PRGHORV VXUJHP FRQVWDQWHPHQWH DFRPSDQKDQGR D HYROXomR GRV DOJRULWPRV H GDV linguagens de programação.

  . Acesso 'LVSRQtYHO HP KWWS GRFHQWH ODJHV LIVF HGX EU YLOVRQ MXQLRU 0DWHULDO'LGDWLFR LS ,3B B/RJLFD SGI! HP /,0$ 5LFDUGR 0DVVD ) 62$5(6 6pUJLR & % $XOD ([WUD ,QWURGXomR D (VWUXWXUDV GH 'DGRV

  • exemplo de lista em Java.

  ,QWURGXomR jV (VWUXWXUDV GH 'DGRV /LVWD 3LOKD )LOD H ÈUYRUH FRP LPSOHPHQWDomR GH XP

  'LVSRQtYHO HP KWWSV ZZZ \RXWXEH FRP ZDWFK"Y ), / \]H8Y ! $FHVVR HP

  7HPSR AGORA A

  VEZ É SUA

  Instruções:

$JRUD FKHJRX D VXD YH] GH H[HUFLWDU VHX DSUHQGL]DGR $ VHJXLU YRFr HQFRQWUDUi DOJXPDV TXHVW}HV GH P~OWLSOD

HVFROKD H GLVVHUWDWLYDV /HLD FXLGDGRVDPHQWH RV HQXQFLDGRV H DWHQWH VH SDUD R TXH HVWi VHQGR SHGLGR Questão 1

&RP R LQWXLWR GH YHUL¿FDU DV KDELOLGDGHV GH SURJUDPDomR TXH DGTXLULX DWp DJRUD VROXFLRQH XP SUREOHPD VLPSOHV XWLOL]DQGR RV

UHFXUVRV GH SURJUDPDomR HVWXGDGRV 7DLV FRQKHFLPHQWRV VmR H[WUHPDPHQWH QHFHVViULRV QD VHTXrQFLD GRV FRQWH~GRV SRLV WH-

remos muitos exemplos e exercícios baseados na linguagem C.

  

3UREOHPD SURSRVWR ,PSOHPHQWH XP SURJUDPD HP & TXH OHLD FRQMXQWRV GH YDORUHV R SULPHLUR UHSUHVHQWDQGR R Q~PHUR GR

DOXQR H R VHJXQGR UHSUHVHQWDQGR VXD PpGLD ¿QDO (QFRQWUH R DOXQR FRP D PDLRU H FRP D PHQRU PpGLD ¿QDO $R ¿QDO GD H[HFXomR

PRVWUH R Q~PHUR GR DOXQR FRP D PDLRU PpGLD ¿QDO MXQWR j VXD PpGLD H R Q~PHUR GR DOXQR FRP D PHQRU PpGLD ¿QDO MXQWR j VXD

média.

  Questão 2

  

1R TXH VH UHIHUH j GHFODUDomR GH YHWRUHV XQLGLPHQVLRQDLV QD OLQJXDJHP & LGHQWL¿TXH D DOWHUQDWLYD TXH FRUUHVSRQGH j GHFODUDomR

de um vetor de inteiros com espaço de armazenamento para 20 números.

  a) LQW YHW> @

  b) ÀRDW YHW > @

  c) FKDU YHW> @

  d) LQW YHW> @> @

  e)

  1HQKXPD GDV DOWHUQDWLYDV p YHUGDGHLUD

  Questão 3

Na linguagem C, para um vetor cujo limite mínimo é 0 (zero) e o limite máximo é 29 (vinte e nove), qual é a faixa correspondente

entre o limite mínimo e máximo do vetor?

  0.

  a) 29.

  b) 31.

  c) 30.

  d)

  e)

  1HQKXPD GDV DOWHUQDWLYDV p YHUGDGHLUD Questão 4

Com base na estrutura de programação da linguagem C, crie um programa que faça a leitura de dois vetores de 5 elementos nu-

PpULFRV FDGD XP H DSUHVHQWH FRPR VDtGD XP ž YHWRU UHVXOWDQWH GD LQWHUFDODomR GHVVHV GRLV YHWRUHV 9HMD R H[HPSOR D VHJXLU

vet1

  2

  4

  6

  8

  10

  vet2

  3

  5

  7

  9

  11

  vet3

  2

  3

  4

  5

  6

  7

  8 9 10 11

  Questão 5

Com base na estrutura de programação da linguagem C, crie um programa que faça a leitura de um vetor bidimensional (matriz)

2x2 de elementos numéricos inteiros. Como saída, mostre uma matriz resultante, que será a matriz digitada multiplicada pelo

maior valor encontrado na matriz.

  

FINALIZANDO

  N Neste tema, você aprendeu conceitos básicos sobre estruturas de dados, que é o nome dado à maneira como os ê d i bá i b d d d é d d à i GDGRV VmR RUJDQL]DGRV YLVDQGR RWLPL]DU VHX XVR )RUDP DERUGDGDV DV SULQFLSDLV HVWUXWXUDV GH GDGRV TXH JHUDOPHQWH são utilizadas para a solução dos mais diversos problemas.

  Na computação, a estrutura de dados é um dos recursos empregados em diversas áreas para resolver os problemas mais variados, simples ou complexos. e LPSRUWDQWH REVHUYDU TXH VHX FRQVWDQWH DSULPRUDPHQWR GL¿FXOWD XP SRXFR D HVFROKD GR WLSR GH HVWUXWXUD GH GDGRV mais recomendado para determinado problema; ainda assim, algumas estruturas clássicas são sempre uma boa opção. mais recomendado para determinado problema; ainda assim, algumas estruturas clássicas são sempre uma boa opção.

  

REFERÊNCIAS

$6&(1&,2 $ ) * &$0326 ( $ 9 Fundamentos da programação de computadores HG 6mR 3DXOR 3UHQWLFH +DOO

  • (&. -81,25 9LOVRQ Lógica de Programação, Algoritmos e Estruturas de Dados 'LVSRQtYHO HP KWWS GRFHQWH ODJHV LIVF

HGX EU YLOVRQ MXQLRU 0DWHULDO'LGDWLFR LS ,3B B/RJLFD SGI! $FHVVR HP

  

/(( +XHL 'LDQD 3(5(6 )DELDQD ) ) 0$57,16 $QD 3DXOD Introdução e Conceitos 7LSRV GH 'DGRV (VWUXWXUDV GH 'DGRV

. H 7LSRV $EVWUDWRV GH 'DGRV 'LVSRQtYHO HP KWWS ZZZ IR] XQLRHVWH EU aIUDWD DHG PDWHULDOBGLGDWLFRBDHG R%LP $XOD SGI! $FHVVR HP /,0$ 5LFDUGR 0DVVD ) 62$5(6 6pUJLR & % Aula Extra - Introdução a Estruturas de Dados 'LVSRQtYHO HP KWWSV ZZZ \RXWXEH FRP ZDWFK"Y ), / \]H8Y ! $FHVVR HP 7(1(1%$80 $DURQ 0 /$1*6$0 <HGLG\DK $8*(167(,1 0RVKH - Estruturas de dados usando C 6mR 3DXOR 0DNURQ %RRNV

  

GLOSSÁRIO

D d Dados: são características observadas de qualquer coisa (objeto, pessoa, sistema) que possam ser coletadas e arma- ã t í ti b d d l i ( bj t i t ) l t d

  ]HQDGDV FRP RX VHP XVR GH FRPSXWDGRU 2V GDGRV SRGHP VHU FROHWDGRV H DQRWDGRV HP ¿FKDV SRU H[HPSOR 3RGHP FRQVLVWLU HP Q~PHURV SDODYUDV LPDJHQV HQWUH RXWURV $V FDUDFWHUtVWLFDV GH XP XVXiULR VmR GDGRV GR PHVPR LGDGH

  VH[R &3) HQGHUHoR HWF 1D FRPSXWDomR GDGRV VHOHFLRQDGRV H DUPD]HQDGRV VHP QHQKXP WLSR GH WUDWDPHQWR RX WUDQVIRUPDomR VmR FODVVL¿FDGRV FRPR GDGRV EUXWRV

  Informação:

  SRGH VH GH¿QLU LQIRUPDomR FRPR XP FRQMXQWR RUJDQL]DGR GH GDGRV Informação precisa ajuda na tomada de decisões estratégicas e na solução de problemas. Por outro lado, pode-se dizer que informação é um fenômeno que DWULEXL VLJQL¿FDGR RX VHQWLGR jV FRLVDV

  Estrutura de Dados:

  QD &RPSXWDomR HVWUXWXUD GH GDGRV p XPD IRUPD HVSHFt¿FD GH RUJDQL]DomR H DUPD]HQDPHQWR GH GDGRV SDUD TXH VHMDP XWLOL]DGRV GH IRUPD H¿FD] $V HVWUXWXUDV GH GDGRV H VHXV DOJRULWPRV VmR PXLWR XWLOL]DGRV QD &LrQFLD GD &RPSXWDomR HP GLYHUVDV iUHDV GR FRQKHFLPHQWR H FRP DV PDLV GLIHUHQWHV ¿QDOLGDGHV QD VROXomR GH SUR- blemas computacionais. blemas computacionais.

  

GABARITO

Questão 1

  5HVSRVWD

LQFOXGH LRVWUHDP!

  LQFOXGH VWGLR K! int main() {

  

GABARITO

LQW FRQW QXP PHGLD PDLRU QXPBPDLRU PHQRU QXPBPHQRU

  IRU FRQW FRQW FRQW { SULQWI ³?Q'LJLWH R Q~PHUR GR Gƒ DOXQR ³ FRQW scanf(“%d”, &num); SULQWI ³?Q'LJLWH D PpGLD GR Gƒ DOXQR ³ FRQW scanf(“%d”, &media);

LI FRQW

  { PDLRU PHGLD QXPBPDLRU QXP PHQRU PHGLD QXPBPHQRU QXP } else { LI PHGLD ! PDLRU { PDLRU PHGLD QXPBPDLRU QXP }

LI PHGLD PHQRU

  { PHQRU PHGLD QXPBPHQRU QXP }

  } } SULQWI ³?Q0DLRU PpGLD G p GR DOXQR GH Q~PHUR G ³ PDLRU QXPBPDLRU SULQWI ³?Q0HQRU PpGLD G p GR DOXQR GH Q~PHUR G ³ PHQRU QXPBPHQRU system(“PAUSE”); return 0; }

  Questão 2 5HVSRVWD Alternativa A. Questão 3 5HVSRVWD Alternativa D.

  Consideremos lower o limite mínimo de um vetor e upper R OLPLWH Pi[LPR 2 Q~PHUR GH HOHPHQWRV QR YHWRU FKDPDGR faixa, é dado por upper - lower + 1. No caso da questão, o limite mínimo é 0, o limite máximo é 29 e a faixa é 30, pois

  ± 30. Ou seja, é possível armazenar 30 elementos no vetor.

  Questão 4

  5HVSRVWD

LQFOXGH LRVWUHDP!

  LQFOXGH VWGLR K! int main() { LQW YHW > @ YHW > @ YHW > @ L M M

  IRU L L L

  

GABARITO

  { SULQWI ³'LJLWH R G HOHPHQWR GR YHWRU ³ L

  VFDQI ³ G´ YHW >L@ YHW >M@ YHW >L@ j++; SULQWI ³'LJLWH R G HOHPHQWR GR YHWRU ³ L

  VFDQI ³ G´ YHW >L@ YHW >M@ YHW >L@ j++;

  } printf(“\nO vetor intercalado ‚ “);

  IRU L L L SULQWI ³ G ³ YHW >L@ system(“PAUSE”); }

  Questão 5

  5HVSRVWD

LQFOXGH LRVWUHDP!

  LQFOXGH VWGLR K! int main() { LQW PDW> @> @ UHVXOWDGR> @> @ L M PDLRU

  IRU L L L {

  IRU M M M {

  SULQWI ³'LJLWH R HOHPHQWR GD OLQKD G H FROXQD G ³ L M

  VFDQI ³ G´ PDW>L@>M@ }

  } PDLRU PDW> @> @

  IRU L L L {

  IRU M M M {

  LI PDW>L@>M@ ! PDLRU PDLRU PDW>L@>M@

  } }

  IRU L L L {

  IRU M M M UHVXOWDGR>L@>M@ PDLRU PDW>L@>M@

  } printf(“\nImprimindo a matriz resultante\n”);

  IRU L L L {

  IRU M M M {

  SULQWI ³0DW> G@> G@ G ?Q´ L M UHVXOWDGR>L@>M@ } } system(“PAUSE”); }

Novo documento