Anda di halaman 1dari 10

$OJRUtWLPRVH3URJUDPDomR

Autoria: Jeanne Dobgenski

Tema 06
Registros e Aplicao em Linguagem C

7HPD
Registros e Aplicao em Linguagem C
Autoria: Jeanne Dobgenski
Como citar esse documento:
DOBGENSKI, Jeanne. Algoritmos e Programao: Registros e Aplicao em Linguagem C. Caderno de Atividades. Valinhos: Anhanguera Educacional, 2014.

ndice

CONVITELEITURA PORDENTRODOTEMA
Pg. 3 Pg. 3

ACOMPANHENAWEB
Pg. 11 Pg. 12

Pg. 16 Pg. 16

Pg. 17 Pg. 17

 $QKDQJXHUD (GXFDFLRQDO 3URLELGD D UHSURGXomR QDO RX SDUFLDO SRU TXDOTXHU PHLR GH LPSUHVVmR HP IRUPD LGrQWLFD UHVXPLGD RX PRGLFDGD HP OtQJXD
SRUWXJXHVDRXTXDOTXHURXWURLGLRPD
CONVITELEITURA
4XHRFLQDPHFkQLFDSRGHVHUFRQVLGHUDGDERDVHVRXEHUUHSDUDUXP~QLFRWLSRGHYHtFXOR"1HQKXPD2PHVPR
acontece com a linguagem C. Certamente C no seria to popular se conseguisse apenas trabalhar com inteiros ou com
reais ou caracteres a cada momento. De fato, no mundo real, geralmente no trabalhamos com pequenas parcelas de
informaes que sejam inteiras, reais, caracteres, mas sim com entidades que so colees de coisas, cada uma delas
tendo seus prprios atributos.

&RQVLGHUHDHQWLGDGHOLYURTXHpXPDFROHomRGHGDGRVFRPRWtWXORDXWRU,6%1HGLWRUDQ~PHURGHSiJLQDVGDWD
GDSXEOLFDomRHQWUHRXWUDVLQIRUPDo}HV9HMDTXHWRGRVHVVHVGDGRVVmRGLVWLQWRV2XVHMDVmRGHWLSRVGLIHUHQWHV
3DUDOLGDUFRPHVVHWLSRGHVLWXDomRDOLQJXDJHP&IRUQHFHXPWLSRGHGDGRTXHSRGHVHUGHQLGRSHORSURJUDPDGRU
de acordo com a necessidade do programa em desenvolvimento, que a estrutura. Uma estrutura junta diferentes
WLSRVGHGDGRVHPXPD~QLFDHQWLGDGH(pH[DWDPHQWHVREUHHVWUXWXUDVTXHHVWHWHPDWUDWD(QWmRDWHQWHVHDRWH[WR
e aproveite o momento para conhecer mais sobre a linguagem de programao C, desenvolvendo sua capacidade de
LPSOHPHQWDUSURJUDPDVFRPSXWDFLRQDLV%RQVHVWXGRV

PORDENTRODOTEMA
Registros
R i t eA
Aplicao
li em Linguagem
Li C

Voc j estudou como as variveis podem armazenar conjuntos de informaes em vetores e/ou matrizes desde
TXH RV HOHPHQWRV GHVVHV FRQMXQWRV VHMDP GR PHVPR WLSR (VVHV GRLV WLSRV GH GDGRV SRGHP VHU VXFLHQWHV SDUD
resolver uma grande variedade de situaes. Mas, em muitos casos, necessrio trabalhar com um conjunto de dados
de tipos distintos. Por exemplo, suponha que voc necessite armazenar os dados de um livro. Certamente precisar
armazenar o nome do livro (um conjunto de caracteres), o preo (um valor real) e o nmero de pginas que possui (um
nmero inteiro). Considere, agora, que voc deseja armazenar essas informaes de trs livros. Para tanto, possvel
seguir duas abordagens:

PORDENTRODOTEMA
Declarar vetores individuais, sendo um para armazenar os nomes dos livros, outro para os preos e o terceiro para o
nmero de pginas.

Usar uma varivel, que uma estrutura do tipo registro.

Examine as duas situaes indicadas. Por motivos de convenincia, considere que os nomes dos livros sejam um nico
FDUDFWHUH1D7DEHODpDSUHVHQWDGRRFyGLJRSDUDHVVHFDVR

Tabela 6.1 Programa que declara matrizes e armazena informaes de trs livros.

/* Programa computacional armazena as informaes de um livro


em vetores. */
#include<stdio.h>

int main()
{
char nome[3];
RDWSUHFR>@
int paginas[3], i;

printf(Entre com os nomes, preos e nmeros de pginas de trs


livros, nessa ordem.\n);
for(i=0; i<3;i++)
{
SULQWI ?Q'DGRVGROLYURGL 
scanf(%c %f %d, &nome[i], &preco[i], &paginas[i]);
} // Fim para i
printf(\n Esses foram os dados digitados: \n)
for(i=0; i<3;i++)
     SULQWI /LYUR G ! F I G?Q L QRPH>L@ SUHoR>L@
paginas[i]);
`),0$/*25,702

)RQWHDGDSWDGDGH.DQHWNDU S


PORDENTRODOTEMA
1mRKiG~YLGDVGHTXHHVVDRSomRGHDUPD]HQDPHQWRGDVLQIRUPDo}HVGRVOLYURVSHUPLWHJXDUGDUFRUUHWDPHQWHRV
nomes, os preos e as pginas que possuem. Mas, como voc deve ter percebido, uma abordagem que no deixa claro
RIDWRGHHVWDUOLGDQGRFRPXPJUXSRGHFDUDFWHUtVWLFDVUHODFLRQDGDVDXPD~QLFDHQWLGDGHROLYUR1HVWHH[HPSORp
evidente que ser cada vez mais difcil trabalhar com as estruturas e entender sua lgica conforme aumentar o nmero
de caractersticas dos livros a serem armazenadas. Por exemplo, pode ser necessrio usar um nmero grande de
YHWRUHVVHGHVHMDUJXDUGDURQ~PHURGDHGLWRUDDGDWDGHSXEOLFDomRGROLYURR,6%1HQWUHRXWURV3DUDUHVROYHUHVWH
problema, poder ser usada uma estrutura de dados que agrupe dados de tipos distintos, chamada estrutura.

Essa estrutura contm uma srie de tipos de dados agrupados e que se referem a determinado objeto, sendo que
os dados podem ou no ser do mesmo tipo. Mas ser que existe uma estrutura de dados do tipo estrutura para cada
VLWXDomRTXHVHGHVHMDWUDWDU"$VOLQJXDJHQVGHSURJUDPDomRDSUHVHQWDPXPWLSRGHHVWUXWXUDFRPRYHWRURXPDWUL]
QHFHVVLWDQGR DSHQDV GHQLU R WLSR GH GDGRV TXH VHUi DJUXSDGR 2X VHMD D YDULiYHO TXH LQGLFDUi RV HOHPHQWRV GR
vetor ou matriz declarada diretamente no programa. Quando se trata de uma estrutura de dados do tipo estrutura ou
struct em C (ou, ainda, registro em outras linguagens), o processo diferente porque uma struct no tem uma estrutura
GHQLGDSDUDFDGDVLWXDomRPDVVLPSHUPLWHDRGHVHQYROYHGRUTXHHOHGHQDDHVWUXWXUDGHGDGRVPDLVDGHTXDGDSDUD
o programa que est desenvolvendo.

Portanto, uma struct rene uma coleo de informaes de um objeto, facilitando sua organizao e seu uso. Cada
informao distinta considerada um atributoRXFDPSRGDHVWUXWXUD3RUVXDYH]RDWULEXWRSRGHVHUGHQLGRFRPR
qualquer tipo de dado que a linguagem utiliza ou como outra estrutura de dados: vetor, matriz ou mesmo outra struct.

5HVSRQGD FRP EDVH QR TXH Mi HVWXGRX VREUH HVWUXWXUD$R GHQLU XP WLSR GH GDGR HVWUXWXUD FRQWHQGR RV DWULEXWRV
adequados ao objeto que voc est tratando no algoritmo, as posies de memria para armazenar as informaes j
IRUDPUHVHUYDGDV"3HUFHEDTXHDWpRPRPHQWRIRLIDODGRGHWLSRGHGDGRHQmRGHYDULiYHO,VVRVLJQLFDTXHSRU
PDLVTXHXPDVWUXFWWHQKDVLGRGHFODUDGDQRSURJUDPDVHQmRIRUGHQLGDSHORPHQRVXPDYDULiYHOGRWLSRGDHVWUXWXUD
QmRKDYHUiFRPRDUPD]HQDULQIRUPDo}HVQHODSRLVQmRIRLGHQLGRXPQRPHSDUDXPHVSDoRGDPHPyULDTXHSRVVD
DUPD]HQDURVWLSRVGHQLGRVGHGDGRV3LYDHWDO S DUPDTXHDVGHQLo}HVGHWLSRVQmRRFXSDPHVSDoR
em memria e servem apenas para que o compilador saiba quais so os atributos que compem cada estrutura e o tipo
de cada um, ou seja, a forma da estrutura.

PORDENTRODOTEMA
Ento, quando voc desejar usar uma struct em algum programa, dever efetuar dois passos: primeiramente, deve
GHQLUHDWULEXLUXPQRPHSDUDDHVWUXWXUDSRVWHULRUPHQWHYRFrGHYHGHFODUDUDYDULiYHOGRWLSRGHQLGR$YDULiYHOGR
tipo estrutura poder ser, inclusive, um vetor.

1D7DEHODpDSUHVHQWDGDDsintaxe de declarao de uma estrutura para armazenar as informaes do livro, aquela


situao problema indicada no incio deste estudo.

Tabela 6.2 Declarao estrutura em C dados do livro.

//declarao do tipo de dado


struct livro
{
char nome;
RDWSUHFR
int pagina;
};

//declarao das variveis


VWUXFWOLYUROLYUROLYUROLYUR

//opo mais adequada para declarao de varivel


struct livro livro[3];

Fonte: Autora

3DUDVHUSRVVtYHOPDQLSXODUFDGDGDGRGDYDULiYHOOLYURSRUH[HPSORpSUHFLVRLQGLFDUHPTXDODWULEXWRRHOHPHQWR
est alocado. Isso feito pelo nome da varivel seguido de ponto . e do nome do atributo. Logo, se quiser saber o
Q~PHURGHSiJLQDVGROLYURGHYHVHXVDUOLYURSDJLQD1D7DEHODpDSUHVHQWDGRRFyGLJRXVDQGRXPDYDULiYHO
do tipo estrutura para manipular as informaes dos livros.


PORDENTRODOTEMA
Tabela 6.3 Programa que declara registro e armazena informaes de trs livros.

  3URJUDPD FRPSXWDFLRQDO TXH GHQH XPD HVWUXWXUD SDUD DUPD]HQDU


informaes de tipos distintos de um livro e faz uso dela na funo principal.
*/

#include<stdio.h>

int main()
{
//declarao do tipo de dado
struct livro
{
char nome;
RDWSUHFR
int pagina;
};

// declarao das variveis


struct livro livro[3];

printf(Entre com os nomes, preos e nmeros de pginas de trs livros);


for(i=0; i<3;i++)
{
SULQWI ?Q'DGRVGROLYURGL 
scanf(%c %f %d, &livro[i].nome, &livro[i].preco, &livro[i].paginas);
} // Fim para i
printf(\n Esses foram os dados digitados: \n)
for(i=0; i<3;i++)
SULQWI /LYURG !FIG?QLOLYUR>L@QRPHOLYUR>L@SUHFR
livro[i].paginas);
`),0$/*25,702

)RQWHDGDSWDGDGH.DQHWNDU S

PORDENTRODOTEMA
2FyGLJRDSUHVHQWDGRQD7DEHODID]H[DWDPHQWHRPHVPRTXHRDSUHVHQWDGRQD7DEHOD$SULQFLSDOGLIHUHQoDp
TXHDYDULiYHOGRWLSRVWUXFWOLYURDUPD]HQDWRGRVRVGDGRVGRVOLYURVDFHVVDQGRRVSRUPHLRGRRSHUDGRUHLQGLFDQGR
RFDPSRTXHDUPD]HQDDLQIRUPDomRTXHVHGHVHMDPDQLSXODU2EVHUYHQRFyGLJRGD7DEHODTXHIRLGHFODUDGDXPD
varivel livro que um array com 3 posies do tipo struct livro; ento, ao manipular essa varivel, ser necessrio
XVDUXPtQGLFHSDUDDFHVVDUROLYURRX/RJRDVVLPFRPRRFRUUHFRPXPDUUD\XQLGLPHQVLRQDO YHWRU DYDULiYHO
ser seguida de colchetes que contero o ndice, depois vir o operador . seguido do campo a ser acessado. Desta
IRUPDVHGHVHMDUVDEHUTXDORSUHoRGROLYURGHYHVHDFHVVDUOLYUR>@SUHFR/HPEUHVHGHTXHDVSRVLo}HVGRV
DUUD\VVHLQLFLDPHP]HURSRUWDQWRDVHJXQGDSRVLomRGHXPDUUD\HP&pLQGLFDGDSRU&DVRDHVWUXWXUDGHQLGD
tivesse um campo que fosse um array, ento a manipulao da varivel seria do tipo varivel[i].campo[j].

1D7DEHODpPRVWUDGRRXWURFyGLJRHP&TXHXVDXPDHVWUXWXUDGHQLGDSHORSURJUDPDGRUHTXHSRVVXLFDPSRV
que so arrays de caracteres e de reais. Alm disso, esse programa mostra o uso de outra biblioteca padro do C,
VWULQJKTXHSRVVXLIXQo}HVHVSHFtFDVSDUDWUDEDOKDUFRPFDUDFWHUHVRXFRPXPDFROHomRGHOHV VWULQJV 


PORDENTRODOTEMA
Tabela 6.43URJUDPDTXHGHFODUDUHJLVWURSDUDDUPD]HQDULQIRUPDo}HVGHDOXQRVYHUVmR

 3URJUDPDHPOLQJXDJHP&TXHDSUHVHQWDHVWUXWXUDVWLSRVGHQLGRV
SHORXVXiULR([HPSOR'HQLQGRHGHFODUDQGRHVWUXWXUDV 
#include <stdio.h>
#include <string.h> // biblioteca com funes de manipulao de strings
'HQHDHVWUXWXUD7$OXQRSDUDDUPD]HQDUDVLQIRUPDo}HVGRVDOXQRV
VWUXFW7$OXQR
{
char codigo[5];
char nome[30];
FKDUVLWXDFDR>@
RDWQRWDV>@
RDWPHGLD
};
int main()
{
'HFODUDXPDYDULiYHOGRWLSR7$OXQR
VWUXFW7$OXQR$OXQR
/*Atribui um valor para o elemento codigo da estrutura usando a funo
padro da biblioteca string.h, strcpy() que copia o dado entre aspas
para o campo cdigo da varivel Aluno */
VWUFS\ $OXQRFRGLJR 
//Atribui um valor para o elemento media da estrutura
Aluno.media = 7.0;
// Imprime o codigo do aluno na tela
printf(Codigo = %s , Aluno.codigo);
//imprime a media do Aluno na tela
SULQWI 0HGLD I?Q$OXQRPHGLD 
return(0);
} // Fim algoritmo

$7DEHODDSUHVHQWDRPHVPRFyGLJRGHPDVLQFOXLXPDRSHUDomRFRPHVWUXWXUDHPXPDIXQomRTXHSUHFLVD
UHFHEHUVXDVLQIRUPDo}HVFRPSDVVDJHPSRUSDUkPHWUR2EVHUYHFRPRSDVVDUXPDVWUXFWFRPRDUJXPHQWRGHIXQomR
simples e segue o que voc j aprendeu a respeito.

PORDENTRODOTEMA
Tabela 6.53URJUDPDTXHGHFODUDUHJLVWURSDUDDUPD]HQDULQIRUPDo}HVGHDOXQRVYHUVmR

 3URJUDPDHPOLQJXDJHP&TXHDSUHVHQWDHVWUXWXUDVWLSRVGHQLGRVSHORXVXiULR
([HPSOR3DVVDJHPGHHVWUXWXUDVFRPRSDUDPHWURVGHIXQo}HV 
#include <stdio.h>
#include <string.h> // biblioteca com funes de manipulao de strings
'HQHDHVWUXWXUD7$OXQRSDUDDUPD]HQDUDVLQIRUPDo}HVGRVDOXQRV
VWUXFW7$OXQR
{
char codigo[5];
char nome[30];
FKDUVLWXDFDR>@
RDWQRWDV>@
RDWPHGLD
};
// Declara o prototipo da funcao
YRLG)XQF VWUXFW7$OXQR$OXQR 
int main()
{
'HFODUDXPYHWRUGHHVWUXWXUDVGRWLSR7$OXQRFRPSRVLo}HV
VWUXFW7$OXQR$OXQRV>@
// Inicializa dois campos
strcpy(Alunos[0].codigo, "0000");
Alunos[0].media = 0.0;
// Efetua chamada da funcao
)XQF $OXQRV>@ 
// Impresso dos valores atribuidos em main
printf(Codigo = %s , Alunos[0].codigo);
SULQWI 0HGLD I?Q$OXQRV>@PHGLD 
return(0);
} // Fim algoritmo
YRLG)XQF VWUXFW7$OXQR$OXQR
{
VWUFS\ $OXQRFRGLJR 
Aluno.media = 7.0;
}


PORDENTRODOTEMA
2EVHUYHTXHQDIXQomR)XQF IRLSDVVDGDFRPRDUJXPHQWRDSHQDVDSULPHLUDSRVLomRGRDUUD\$OXQRV>@SRLVD
IXQomRWUDEDOKDFRPXPDYDULiYHOGRWLSRVWUXFW7$OXQRTXHQmRpXPDUUD\&DVRIRVVHQHFHVViULRDOWHUDURVGDGRVGH
RXWUDSRVLomRGH$OXQRV>@DIXQomR)XQF GHYHULDVHUFKDPDGDQRYDPHQWHHUHFHEHUFRPRDUJXPHQWRDSRVLomR
correspondente para a correta manipulao dos dados.

$JRUD YRFr Mi WHPXP ERP UHIHUHQFLDO VREUH R TXH VmR DV HVWUXWXUDV/HPEUHVHGH TXH D OHLWXUD GR /LYUR7H[WRGD
GLVFLSOLQD p IXQGDPHQWDO SDUD FRQVROLGDU VHX DSUHQGL]DGR$SURYHLWH EHP VHX WHPSR GH HVWXGR H GHGLTXHVH j VXD
IRUPDomR%RDVRUWH

ACOMPANHENAWEB
Representao de Dados em Arrays e Structs

 Leia um conjunto de slidesVREUHUHSUHVHQWDomRGHGDGRVHPDUUD\VHVWUXFWVGD38&5-


Disponvel em: <KWWSZZZLQISXFULREUaLQIDXOD$UUD\6WUXFWSGI>$FHVVRHPMXO

Intellectuale

 Acesse a pgina da Intellectuale, tecnologia e treinamento, com matria escrita por Eduardo
Casavella que trata sobre struct em C.
Disponvel em: <KWWSOLQJXDJHPFFRPEUVWUXFWHPF>$FHVVRHPMXO

Projetos de Algoritmos

 Acesse a pgina do curso de Projetos de Algoritmos da USP. Ela apresenta uma breve
explicao sobre o uso de registros e structs.
Disponvel em: <KWWSZZZLPHXVSEUaSIDOJRULWPRVDXODVVWUXKWPO>$FHVVRHPMXO



ACOMPANHENAWEB
Introduo s Estruturas em Linguagem C

 $VVLVWDjWULJpVLPDQRQDYLGHRDXODGDVpULHTXHDSUHVHQWDXPDLQWURGXomRjVHVWUXWXUDVHP
linguagem C.
Disponvel em: <KWWSVZZZ\RXWXEHFRPZDWFK"Y 3;*]Q*[VDJ OLVW 3/D%<73'1.=:<\SJ2
)(V;+0J6]X/: LQGH[ >$FHVVRHPMXO

7HPSRPLQVHJ
H SR VHJ

AGORAASUAVEZ
Instrues:
Agora, chegou a sua vez de exercitar seu aprendizado. A seguir, voc encontrar algumas questes de mltipla
HVFROKDHGLVVHUWDWLYDV/HLDFXLGDGRVDPHQWHRVHQXQFLDGRVHDWHQWHVHSDUDRTXHHVWiVHQGRSHGLGR
Questo 1

&RQVLGHUHDIXQomRDVHJXLUHFDOFXOHRYDORUGHVDtGDGRVHOHPHQWRVGRVYHWRUHV[H\VDEHQGRTXH[ ^`H\ 
^`
void operacao_com_vetor()
{
int i;
RDW[>@\>@
le_vetor(5, x);
le_vetor(5, y);
for (i=0; i<5; i++)


AGORAASUAVEZ
{
x[i] = x[i] + y[i];
y[i] = x[i] * 5;
} // end for i
imprime_vetor(5, x);
imprime_vetor(5, y);

} // end funcao

Questo 2
&ODVVLTXHDVVHJXLQWHVDUPDo}HVFRPR9HUGDGHLUDV 9 RX)DOVDV ) HDVVLQDOHDDOWHUQDWLYDTXHFRUUHVSRQGHjVHTXrQFLD
correta:

I. 8PDVWUXFWQmRWHPXPDHVWUXWXUDGHQLGDSDUDFDGDVLWXDomRPDVVLPSHUPLWHDRGHVHQYROYHGRUTXHHOHGHQDDHVWUXWXUD
de dados mais adequada para o programa que est desenvolvendo.

II. 2
 XVRGHXPDVWUXFWHPXPSURJUDPDHQYROYHSULPHLUDPHQWHGHQLUHDWULEXLUXPQRPHSDUDDHVWUXWXUDSRVWHULRUPHQWH
GHFODUDUDYDULiYHOGRWLSRGHQLGR

III. 2DWULEXWRGHXPDVWUXFWSRGHVHUGHQLGRFRPRTXDOTXHUWLSRGHGDGRTXHDOLQJXDJHPXWLOL]DRXFRPRRXWUDHVWUXWXUDGH
dados: vetor, matriz, mas nunca outra struct.
$WHUQDWLYDV

a) V, F, V.

b) V, F, F.

c) V, V, F.

d) F, V, V.

e) V, V, V.



AGORAASUAVEZ
Questo 3
Considere o fragmento de cdigo, a seguir, e marque a alternativa incorreta.
struct circulo
{
RDWGLDPHWURDUHD
};

struct quadrado
{
RDWODGRDUHD
struct circulo circulo_inscrito, circulo_circunscrito;
};

a) 6mRGHFDUDGDVGXDVHVWUXWXUDVGRWLSRVWUXFW

b) $HVWUXWXUDFLUFXRSRVVXLGRLVDWULEXWRV

c) $HVWUXWXUDTXDGUDGRSRVVXLGRLVDWULEXWRVGRWLSRUHDHGRLVGRWLSRVWUXFWFLUFXR

d) $VGHFDUDo}HVGDVHVWUXWXUDVVWUXFWFLUFXRHVWUXFWTXDGUDGRDSHQDVLQGLFDPSDUDRFRPSLDGRUDIRUPDGHVVDVHVWUXWXUDV

e) $GHFDUDomRGDHVWUXWXUDVWUXFWTXDGUDGRHVWiHUUDGDSRUTXHQmRpSRVVtYHGHFDUDUXPDWULEXWRFRPRRXWURUHJLVWUR

Questo 4

)DoDXPSURJUDPDHP&SDUDRTXDOVHMDGHQLGDXPDHVWUXWXUDFRPGRLVFDPSRVLQWHLURVVHQGRGHFODUDGDVGXDVYDULiYHLVGR
WLSRGDHVWUXWXUDGHQLGD)DoDDSULPHLUDYDULiYHODUPD]HQDUHPXPFDPSRHQRRXWURGHSRLVFRSLHRFRQWH~GRGHVVD
YDULiYHOSDUDDRXWUDGRPHVPRWLSR3RUPDSUHVHQWHQDWHODRFRQWH~GRGDVHJXQGDYDULiYHO


AGORAASUAVEZ
Questo 5
Considere o fragmento de cdigo, a seguir, e explique o que feito.
IRU L LL
{
if (func[i].venda_nov > maior)
{
maior = func[i].venda_nov;
pos_maior = i;
PHV 
`PVH
if (func[i].venda_dez > maior)
{
maior = func[i].venda_dez;
pos_maior = i;
PHV 
`PVH
if (func[i].venda_jan > maior)
{
maior = func[i].venda_jan;
pos_maior = i;
mes = 3;
`PVH
`PSDUD



FINALIZANDO
2XVRGHHVWUXWXUDVGHQLGDVSHORGHVHQYROYHGRUpPXLWR~WLOHVSHFLDOPHQWHSDUDWUDEDOKDUFRPGLVWLQWRVWLSRVGH
2 G G LG O G O G p L ~ LO L O E OK GL L L G
GDGRVHTXHVHUHUDPDXPPHVPRREMHWRFRPRRFDGDVWURGHFOLHQWHVSRUH[HPSOR

/HPEUHVH GH TXH DV HVWUXWXUDV SHUPLWHP DJUHJDU GLIHUHQWHV WLSRV GH LQIRUPDo}HV SRGHQGR HQWmR IRUPDU LQ~PHUDV
FRPELQDo}HV GLVWLQWDV JHUDQGR QRYRV WLSRV GH GDGRV 2XWUR IDWRU LPSRUWDQWH p D QHFHVVLGDGH GH SULPHLUR GHQLU D
estrutura (struct) que ser usada no programa, para ento declarar a varivel que ser desse tipo de estrutura.
possvel, inclusive, declarar uma varivel como um array de struct.

2/LYUR7H[WRGDGLVFLSOLQDDSUHVHQWDXPULFRFRQWH~GRVREUHRDVVXQWRVHQGRLPSRUWDQWHUHIHUrQFLDSDUDRHVWXGRHD
concretizao do aprendizado.

REFERNCIAS
CASAVELLA, Eduardo. Struct em C. Disponvel em: <KWWSOLQJXDJHPFFRPEUVWUXFWHPF>$FHVVRHPMXO
.$1(7.$5<DVKDYDQW3Let us C1HZ'HOKL,QQLW\6FLHQFH3UHVV//&
0,=5$+,9LFWRULQH9LYLDQHTreinamento em Linguagem C6mR3DXOR3HDUVRQ
3,9$-81,25, Dilermando; 1$.$0,7,, Gilberto Shigueo; (1*(/%5(&+7, Angela de M.; %,$1&+,, Francisco. Algoritmos e
Programao de Computadores5LRGH-DQHLUR(OVHYLHU
352*5$0$5HP&,QWURGXomR(VWUXWXUDV$XOD'LVSRQtYHOHP<KWWSVZZZ\RXWXEHFRPZDWFK"Y 3;*]Q*[VDJ OLVW
3/D%<73'1.=:<\SJ2)(V;+0J6]X/: LQGH[ >$FHVVRHPMXO
38&5-Representao de Dados - Arrays e Structs. Disponvel em: <KWWSZZZLQISXFULREUaLQIDXOD
ArrayStruct.pdf>$FHVVRHPMXO
6&+,/'7+HUEHUWC, completo e total6mR3DXOR0DNURQ%RRNV
USP. Registros e structs. Projetos de Algoritmos. Disponvel em: <KWWSZZZLPHXVSEUaSIDOJRULWPRVDXODVVWUXKWPO>. Acesso
HPMXO


GLOSSRIO
Atributo:
At ib t que prprio
i d de algum
l ou d
de algo.
l C
Caracterstica.
t ti

Coleo:pXPJUXSRGHYDULiYHLVTXHWrPDOJXPVLJQLFDGRFRPSDUWLOKDGRFRPRSUREOHPDVHQGRUHVROYLGRHQHFHVVLWD
ser operado em conjunto, mas de forma controlada.

Declarar: ato de mostrar claramente, esclarecer, revelar, dar a conhecer ou explicar.

Registro: estruturas que podem agregar diferentes informaes.

Sintaxe:UHIHUHVHjVUHJUDVTXHUHJHPDFRPSRVLomRGRVWH[WRVHPXPDOLQJXDJHPIRUPDOTXHFRQVWLWXLDVIyUPXODV
EHPIRUPDGDVGHXPVLVWHPDOyJLFR

GABARITO
Questo 1

Resposta:

x y
[>@ 7 \>@ 35
[>@  \>@ 
x[3]  y[3] 
[>@  \>@ 
x[5]  y[5] 



GABARITO
Questo 2
Resposta: Alternativa C.
Questo 3
Resposta: Alternativa E.
Questo 4
Resposta: Uma possvel soluo:

#include <stdio.h>

void main()
{
struct {
int a;
int b;
} x, y;

[D 
x.b = 30;

y = x; /* atribui uma estrutura a outra */

printf("y.a = %d e y.b = %d", y.a, y.b);


}

Questo 5
Resposta:3DUDXPFRQMXQWRGHUHJLVWURVYHULFDVHVHDOJXPDGDVYHQGDVGRVPHVHVGHQRYHPEURGH]HPEURH
janeiro maior que determinado valor armazenado em uma varivel maior. Se a venda de algum desses meses for
maior, ento guarda o valor da venda na varivel maior, guarda qual o registro foi maior e guarda qual ms teve a maior
YHQGD$RQDOGDYHULFDomRGHWRGRVRVUHJLVWURVWHUmRVLGRJXDUGDGDVDVVHJXLQWHVLQIRUPDo}HV
 A maior venda entre todas as ocorridas nos trs meses.
 Qual registro obteve a maior marca.
 Qual o ms em que ocorreu a maior venda.



Anda mungkin juga menyukai