Sei sulla pagina 1di 8

definio de registros

registros so estruturas de dados capazes de agregar vrias funes.podemos gerar novos no nos limitando a ultilizao dos tipos de dados oferecidos pela linguagem de programao. cada informao contida em um registro chamada de campo,podendo os mesmos ser de diferentes tipos primitivos,ou podem representar outros registros.Os registros so conhecidos variveis compostas e heterogneas. Declarar uma varivel em registros especificar os nomes de seus campos com seus respectivos tipos; uma varivel registro pode ser simples, um vetor ou uma matriz. e!amos alguns e"emplos de sinta"e correta para a declarao de varivel registro. Declare nome#da#varivel#registro $nome#campo% tipo#do#campo%, nome#campo& tipo#do #campo&,..., nome#campon tipo#do#campon' %( e". Declare conta )*+,-.)O $ n/mero, saldo 012*),3O, nome 4,.*)54' Declarao de uma varivel chamada conta.*sta varivel um registro composto por trs campos 6n/mero e saldo, capaz de armazenar valores numricos, e nome , capaz de armazenar um valor literal.

*"emplo de estruturas em c
7m registro $8 record' uma coleo de vrias variveis, possivelmente de tipos diferentes. 0a linguagem 3, registros so conhecidos como structs $a9reviatura de structures'. *ste e"emplo declara um registro " com trs campos $ou mem9ros' inteiros6

struct : int dia;

int mes; int ano; ; "; 0omeando o tipo de registro. 0o nosso e"emplo, dma parece um nome apropriado6

struct dma : int dia; int mes; int ano; ;; struct dma "; <= um registro " do tipo dma =< struct dma >; <= um registro > do tipo dma =< ? fcil atri9uir valores aos campos de um registro6

".dia 8 @%; ".mes 8 A; ".ano 8 &B%@;

*"emplo6 5 funo a9ai"o rece9e a data de inCcio de um evento e a durao do evento em dias. *la devolve a data de fim do evento.

struct dma fim#evento $struct dma datainicio, int duracao' : struct dma datafim; ...

... datafim.dia 8 ... datafim.mes 8 ... datafim.ano 8 ... return datafim; ; Deve levar em conta a e"istncia de meses com @% dias, de meses com @B dias, com &D dias etc. *is como essa funo poderia ser usada6

int main$ void' : struct dma a, 9; int d; scanf$ EFd Fd FdE, Ga.dia, Ga.mes, Ga.ano'; scanf$ EFdE, Gd'; 9 8 fim#evento$ a, d'; printf$ EFd Fd FdHnE, 9.dia, 9.mes, 9.ano'; return *I,.#-733*--; ;

-u9rotinas em c
J +rupo de comandos dentro de um programa com o propKsito de realizar uma tarefa especCfica. J *m geral, os programas so divididos em

su9tarefas $su9rotinas<funes'. J antagens6 L 2elhor viso geral da soluo $do pro9lema' L 3Kdigo mais simples L Martes do cKdigo podem ser reutilizadas em outros programas L Nacilita o teste $encontrar erros'

*"emplo de su9rotinas na linguagem c


-u9O)otinas na 4inguagem P3Q 6 Mrocedures e Nunes O .odo 9loco pode rece9er um nome, com parRmetros de *<- 6 Stipo#retornadoT nome#da#rotina $ Snome#vars#parRmetrosT ' Sdeclarao#dos#parRmetrosT; : Svariveis#locaisT; ScomandosT; return $ SresultadoT '; ; O *"emplos6 main $ ' void main $ argc, argv ' : int argc; printf$PUello VorldWHnQ'; char =argv X Y; ;: printf$P0ro. args6 FdHnQ,argc'; ;-u9O)otinas na 4inguagem P3Q 6 Mrocedures e Nunes O *"emplos de su9Orotinas 6 funo O retorna um valor

long fatorial $ num ' <= )otina Natorial O Nuno =< int num; <= *ntrada6 num O inteiro =< : <= -aCda 6 fatorial O long =< int au"; long resultado; <= ariveis locais =<

resultado 8 %; for $au" 8 num; num W8 %; numOO' resultado 8 resultado = au"; <= Ou... resultado =8 au"; =< return $ resultado '; <= )etorna o resultado =< ; main $ ' : long fat; printf $PNatorial de Z 6 Fld HnQ, fatorial$Z''; fat 8 fatorial $ [ '; <= 3hama a funo fatorial =< ; -u9O)otinas na 4inguagem P3Q 6 Mrocedures e Nunes O *"emplos de su9Orotinas 6 procedure O no retorna nada void e"i9e#media $ v%, v& ' <= )otina 6 e"i9e#media =< int v%, v&; <= *ntrada6 v%, v& O inteiros =< : <= -aCda 6 no retorna nada =< dou9le media; media 8 $ v% \ v& ' < &.B; printf $P2dia 8 Flf HnQ, media'; <= *"i9e o resultado na tela =<

; main $ ' : int n%, n&; printf $P*ntre & n/meros inteiros6 P'; scanf $PFd FdQ,Gn%, Gn&'; e"i9e#media $ n%, n& '; <= 3hama a procedure media =< ;-u9O)otinas na 4inguagem P3Q 6 Mrocedures e Nunes O *"emplos de su9Orotinas 6 passagem de parRmetros por valor void e"i9e#media $ v%, v& ' <= )otina6 e"i9e#media =< int v%, v&; <= *ntrada6 v%, v& O inteiros =< : <= Massagem de params. por valor =< dou9le media; <= v% e v& rece9em uma cKpia de n% e n& =< media 8 $ v% \ v& ' < &.B; printf $P2dia 8 Flf HnQ, media'; <= *"i9e o resultado na tela =< v% 8 v& 8 B; <= ]era v% e v&... 0o afeta n%, n& =< ; main $ ' : int n%, n&; printf $P*ntre & n/meros inteiros6 P'; scanf $PFd FdQ,Gn%, Gn&'; e"i9e#media $ n%, n& '; <= 3hama a procedure media =< ; -u9O)otinas na 4inguagem P3Q 6 Mrocedures e Nunes

O *"emplos de su9Orotinas 6 passagem de parRmetros por referncia $ponteiro' void calcula#media $ v%, v&, media ' <= )otina 6 calcula#media =< int v%, v&; <= Massagem de params. por valor =< dou9le =media; <= Massagem de param. por referncia =< : <= 2edia um ponteiro para result =< =media 8 $ v% \ v& ' < &.B; printf $P2dia 8 Flf HnQ, =media'; <= *"i9e o resultado na tela =< v% 8 v& 8 B; <= ]era v% e v&... 0o afeta n%, n& =< ; main $ ' : int n%, n&; dou9le result; printf $P*ntre & n/meros inteiros6 P'; scanf $PFd FdQ,Gn%, Gn&'; calcula#media $ n%, n&, Gresult'; <= 3hama a procedure media =< printf $P alores6 FdO Fd Hn)esultado6 Flf HnQ, n%, n&, result'; ;-u9O)otinas na 4inguagem P3Q 6 Mrocedures e Nunes O *"emplos de su9Orotinas 6 passagem de parRmetros por referncia $ponteiro' void calcula#media $ v%, v&, media ' <= )otina 6 calcula#media =< int =v%, =v&; <= Massagem de params. por referncia =< dou9le =media; <= Massagem de param. por referncia =< : =media 8 $ =v% \ =v& ' < &.B;

printf $P2dia 8 Flf HnQ, =media'; <= *"i9e o resultado na tela =< =v% 8 =v& 8 B; <= ]era v% e v&... 5N*.5 n%, n& W =< ; main $ ' : int n%, n&; dou9le result; printf $P*ntre & n/meros inteiros6 P'; scanf $PFd FdQ,Gn%, Gn&'; calcula#media $ Gn%, Gn&, Gresult'; <= 3hama a procedure media =< printf $P alores6 Fd O Fd Hn )esultado6 Flf HnQ, n%, n&, result' ;

Potrebbero piacerti anche