Вы находитесь на странице: 1из 10

Variveis

Num programa, existe a necessidade de se guardar valores na memria, e isso feito atravs de variveis, que podem ser definidas simplesmente usando nomes que se referem a lugares na memria onde so guardados valores. Em C, para utilizar uma varivel, ela deve ser primeiro declarada, ou seja, devemos requisitar o espa o necessrio para essa varivel. !ps reservar um espa o na memria, o computador ir associar"l#e o nome da varivel. $e tentarmos utilizar uma variavel sem a ter declarado primeiro, o compilador ir avisar"nos disso e no continuar a compila o.

Declarar variveis
%ara declarar uma varivel, usamos a seguinte instru o&
tipo_da_varivel nome_da_varivel;

%or exemplo, para declarar uma varivel do tipo int com o nome a, podemos escrever
int a;

' sempre necessrio indicar o tipo da varivel, pois cada tipo tem um taman#o diferente, ou seja, ocupa mais ou menos espa o na memria do computador.

Atribuir valores
%ara associar um valor a uma varivel, usamos o operador = (igual)& Ex &
a = 5;

Nesse caso, pedimos que o computador guarde o valor * no espa o alocado + varivel a. ' poss,vel atri-uir um valor a uma varivel ao mesmo tempo que ela declarada, o que c#amado de inicializar a varivel. Ex &
int a = 5;

%ara declarar mais de uma varivel de um mesmo tipo em numa .nica instru o, -asta separar os nomes por v,rgulas. Ex &
int a, b, c, d; int e = 5, f = 6; int g, h = 2, i = 7, j;

Nomes de variveis
/s nomes de variveis devem ser .nicos& no podendo #aver duas variveis com o mesmo nome. No C, as variveis so sens,veis + utiliza o de mai.sculas e min.sculas. %ortanto, o cdigo a seguir seria vlido e geraria tr0s variveis diferentes&
int nome; int NOM ; int Nome;

!s variveis, podemos usar letras mai.sculas ou min.sculas (de ! a 1, sem acentos), n.meros e o caractere su-lin#ado (2), mas o primeiro caractere deve ser uma letra ou o su-lin#ado. !lgumas palavras no podem ser usadas para nomes de

variveis por serem palavras reservadas (palavras que t0m significado especial na linguagem). 3ista de palavras reservadas& auto4 -rea54 case4 c#ar4 const4 continue4 default4 do4 dou-le4 else4 enum4 extern4 float4 for4 goto4 if4 int4 long4 main4 register4 return4 s#ort4 signed4 sizeof4 static4 struct4 s6itc#4 t7pedef4 union4 unsigned4 void ( igual a c#ar )4 volatile4 6#ile.

Tipos de variveis
! linguagem C tem 8 tipos fundamentais. 9ue so&
int !har float do"ble

int, serve apenas para guardar n.meros inteiros e guarda (em processadores de :; -its) valores de ";.<8=.8>:.?8> a ;.<8=.8>:.?8= (";:< a ;:< @ <). %or exemplo, 8, ;==: ou "<*. char, serve para guardar um caractere, e o mais comum porque guarde valores de "<;> a <;=

Os outros dois, float e do"ble , servem para guardar nmeros de ponto flutuante. A diferena entre os dois o intervalo de dados e a preciso. Geralmente, o tipo float guarda dados (com sinal positivo ou negativo) de 3, !"3# a 3, !$3# (alm do %ero). !n&uanto &ue do"ble costuma suportar nmeros to pe&uenos &uanto ',(!"3)# e no m*+imo ',(!$3)#.

Operaes matemticas
Aazer opera Bes matemticas simples. %or exemplo, se eu quiser que uma varivel conten#a o resultado da conta <;: C D<;, fa o da seguinte maneira&
var = #2$ % &#2;

/s operadores aritmticos -sicos so *& C (adi o), " (su-tra o), E (multiplica o), F (diviso) e G (resto de diviso inteira). /utro exemplo&
int a = #5; int b = 72; int c = a ' b; /* c valer 1572 */

%osso usar mais de um operador na mesma expresso. ! preced0ncia igual + usada na matemtica comum&
a = 2 % ( ' #); a = 2 % () * 2 % 5; /* vai devolver 42 (e no 60) */ /* vai devolver 27 (e no 26) */ /* vai devolver 60 */ /* vai devolver 6 */

%osso usar par0nteses, como nas expressBes matemticas normais&


a = +2 % (, ' #); a = +2 % (), * +2 % 5,;

Hma opera o entre n.meros inteiros ir sempre devolver um n.mero inteiro. Isso claro para a adi o, su-tra o e multiplica o. Jas numa uma diviso de inteiros, por exemplo $*2, a expresso ir devolver apenas a parte inteira do resultado, ou seja, <. $e o pretendido for um resultado no"inteiro, um dos operandos deve ser no"inteiro. Nesse exemplo, posso usar $-)*2 ou $*2-), ou mesmo $-*2 ou +#-) ' $,*2, porque em C, uma opera o que envolva um n.mero no"inteiro ter sempre como resultado um n.mero real. / exemplo seguinte poderia surpreender, porque o programa diria que o valor de f continuava a ser :. Kinclude Lstdio.#M int main()
. int i,j; float f; i = 5; j = 2; f = $-); f = f % j * i; printf+/O valor de f 0 1f2n/, f,; ret"rn );

Funo O que uma funo


Hma funo um commando que faz uma tarefa espec,fica e pode ser c#amado de qualquer parte do programa quantas vezes desejarmos. Htilizamos fun Bes para &
Simplificar o cdigo, repartindo partes de c-digo da funo main(), podemos entender mais facilmente o &ue cada parte do c-digo fa%. Alm disso, para procurar uma certa ao feita pelo programa, .asta e+ecutar a funo correspondente. /sso torna muito mais f*cil procurar erros. Reutilizao do cdigo, muitas ve%es necessario e+ecutar uma tarefa v*rias ve%es ao longo do programa, e repetir o c-digo todo para essa operao torna"se e+austivo, e torna mais dif0cil a manuteno de todo o c-digo, se encontrasse erros nesse c-digo, teria &ue corrig0"lo em todas as repeti1es do c-digo. !+ecutar uma funo diversas ve%es contorna esses dois pro.lemas.

! idia de uma fun o permitir guardar um idia ou opera o, dando"l#e um nome e utiliza"la quando necessario. Estando corretamente projetado e estruturado o programa, num situa o ideal, dever ser poss,vel alterar as fun Bes sem efeito no resto do programa.

Definir uma funo


Hma fun o pode necessitar de alguns dados para que possa realizar alguma ac o que l#e ten#a sido atri-uida. Esses dados so c#amados par metros da fun o. !lm disso, a fun o pode devolver um valor c#amado valor de retorno. /s parNmetros (e os seus tipos) devem ser especificados explicitamente, assim como o tipo do valor de retorno.

! forma geral da defini o de uma fun o &


4tipo de retorno da f"n56o7 4nome da f"n56o7 +#8 par9metro, 28 par9metro, :, . //cdigo 3

2ara o nome da funo e dos par3metros aplicam"se as mesmas regras &ue foram atri.uidas para os nomes de vari*veis. 4o se pode usar o mesmo nome para fun1es diferentes num programa. 5odas as fun1es devem ser definidas antes da funo main. O c-digo deve estar o.rigatoriamente dentro das c6aves e funcionar como &ual&uer outro .loco.

Valor de retorno
9uando uma fun o faz algum tipo de processamento ou clculo e necessita de devolver o resultado desse procedimento isso designado por valor de retorno e pode ser feito com a instru o return. %ara poder devolver um valor, necessario especificar seu tipo (c#ar, int, float, dou-le e varia Bes). %ara efectivamente devolver um valor, usa"se a instru o return seguida do valor devolvido, que pode ou no vir entre par0nteses. Ex &
int tre;+, . return $; 3 // poderia tamb m !er ret"rn (#)$

/ que foi devolvido, alm dos tipos normais de variveis (c#ar, int, float, dou-le e suas varia Bes), pode ser o tipo especial void, que na verdade significa que no # valor de retorno.

Parmetros
Hm parNmetro um valor que atri-uido + fun o quando ela c#amada. ' comum tam-m c#amar aos parNmetros de ar!umentos, em-ora argumento esteja associado ao valor de um parNmetro. %odemos aceder aos parNmetros de uma fun o da mesma maneira que variveis locais, porque funcionam exatamente como variveis locais, e modificar um argumento no modifica o valor original no contexto da c#amada de fun o, porque ao dar um argumento numa c#amada de fun o, ele copiado como uma varivel local da fun o. %ara declarar a presen a de parNmetros, usa"se uma lista de parmetros entre par0nteses, com os parNmetros separados por v,rgulas. Cada declara o de parNmetro feita de maneira semel#ante + declara o de variveis& a forma geral tipo nome. Ex &
int f"ncao +int a, int b, float f"ncao +float preco, int <"antidade, do"ble f"ncao +do"ble ang"lo,

%ara especificar que a fun o no usa nen#um parNmetro, a lista de parNmetros deve conter apenas a palavra"c#ave void. No entanto, ela freqOentemente omitida nesses casos, portanto, poderia escrever"se qualquer uma destas duas lin#as&
void f"ncao +void,

void f"ncao +,

/s nomes dos parNmetros so usados apenas na prpria fun o (para distinguir os argumentos)4 no t0m qualquer rela o com as variveis usadas para c#amar a fun o.

Chamadas de funes
%ara executar uma fun o, faz"se uma c"amada de funo, que uma instru o composta pelo nome da fun o, seguido pela lista de argumentos entre par0nteses&
nome%da%&"n'o +arg#, arg2, ---,;

/s argumentos podem ser qualquer tipo de expresso& podem ser variveis, valores constantes, expressBes matemticas ou at mesmo outras c#amadas de fun o. Peve"se sempre dar o mesmo n.mero de argumentos que a fun o necessita! prpria c#amada de fun o tam-m uma expresso cujo valor o valor de devolvido pela fun o, -astando coloc"la no lado direito do sinal de igual para guardar o valor numa varivel. %or exemplo, se a fun o QquadradoQ devolver o quadrado de um n.mero inteiro, pode fazer"se da seguinte maneira para calcular o quadrado de << na varivel x&
int = = <"adrado +##,;

8 8

Pois exemplos de c#amadas de fun Bes&


>incl"de ?;tdio-h@ int <"adrado +int =, . ret"rn += ' =,; 3 void ;a"dacao +void, .

printf +/OlA2n/,; 3 void de;pedida +void, . printf +/Bim do programa-2n/,; 3 int main +, . int n"mero, re;"ltado; ;a"dacao +,; printf +/Cigite "m nDmero inteiroE /,; ;canf +/1d/, Fn"mero,; re;"ltado = <"adrado +n"mero,; printf +/O <"adrado de 1d 0 1d-2n/, n"mero, re;"ltado,; de;pedida +,; ret"rn ); 3

Estaria visivel na tela ao executar o programa&


OlA Cigite "m nDmero inteiroE (2 O <"adrado de (2 0 #76(Bim do programa-

!o c#egar a c#amada de uma fun o, o programa passa o controle para essa fun o e, aps terminar, devolve o controle para a instru o seguinte na fun o original. /utro exemplo, com uma fun o de : argumentos&
>incl"de ?;tdio-h@ *' M"ltiplica $ n"mero; '* void m"lt +float a, float b, float c, . printf +/1f/,a'b'c,; 3 int main +, . float =, G; = = 2$-5; G = #2-&; m"lt +=, G, $-H7,; ret"rn ); 3

Vetores
#

Vetores servem para armazenar vrios dados no mesmo nome de varivel atravs do uso de ,ndices numricos. Retores devem sempre conter dados do mesmo tipo de varivel. Peclara"se vetores de maneira muito semel#ante + de variveis normais. ! .nica diferen a que depois do nome da varivel deve ser informada a quantidade de

elementos do vetor. %ara declarar um vetor c#amado vetor, com cinco elementos inteiros, escreve"se&
int vetor457;

! quantidade de elementos de um vetor no pode ser alterada depois do vetor ser declarado. Pa mesma maneira que se pode inicializar uma varivel junto com sua declara o, pode tam-em usar"se as c#aves (.3) para inicializar um vetor.
int vetor457 = .#7, (2, &, $$, #23;

%ara refer0nciar um valor a um elemento de um vetor, usamos o termo vetor4Indice7, que serve tanto para o-ter quanto para definir o valor de um elemento espec,fico, dada sua posi o. /s elementos so numerados a come ar do zero, e, portanto, se o n.mero de elementos N, o ,ndice ou posi o do .ltimo elemento ser N @ <.
vetor4)7 = $; int = = vetor427; int G = vetor457; ** JJOA

Na .ltima lin#a est um erro& ele referenciado como um elemento do vetor que no existe. No entanto, o compilador no se recusar a compilar esse cdigo4 dar apenas um aviso. $e essa lin#a for executada, a varivel y rece-er um valor que no tem nada a ver com o vetor.

Exemplo de

plicao de Vetores

/ cdigo a-aixo de um programa que rece-e * n.meros inteiros e informa qual destes maior.
>incl"de ?;tdio-h@ >incl"de ?;tdlib-h@ >incl"de ?conio-h@ int main+int argc, char 'argv47, . int vetor457; int =, G, K; char M NLMN M47= / ntre com 5 n"mero; inteiro;-2n/; printf + M NLMN M , ; for +G = ); G ? 5; G%%, *' ;te laco faK o ;can de cada elemento do vetor'* . ;canf+/1d/, Fvetor4G7 ,; 3 K = #;

G = ); = = vetor4)7; Ohile +G ? (, *' ;te laco compara cada elemento do vetor'* . if +vetor4G7 ? vetor4K7, . = = vetor4K7; 3 G%%; K%%; 3 printf+/2n O maior n"mero <"e voce digito" foi 1d -2n/,=,; getch +,; ret"rn ); 3

#trin!s
Em C, ao contrrio de outras linguagens de programa o, no se possui um tipo de dados correspondente +s strings4 em vez disso, usam"se vetores. $trings so nada mais que vetores de caracteres terminados pelo caractere nulo (P2)P). Ex &
char nome47 = .PQP, PeP, PdP, PrP, PoP, P2)P3;

'

Escrever strings dessa maneira daria imenso tra-al#o4 por isso, foi criada uma nota o a-reviada que equivale + nota o acima e elimina a necessidade de colocar o carctere terminador&
char nome47 = /Qedro/;

Como nos vetores, podemos aceder e modificar elementos individuais de uma string.. Hm cuidado especial deve ser tomado ao se usar acentos em numa string, porque existem diferentes formas de codificar caracteres acentuados, o tratamento de uma string do tipo&
char nome47 = /Ro6o/;

pode ser diferente de um computador para outro.

Introdu o
Este tra-al#o tem como o-jectivo dar continuidade + aprendizagem da linguagem orientada por o-jectos. Neste tra-al#o vo desenvolver e explicar metodos de programa o.
' '

'

Sndice
<TT..Introdu o ;TT..RariveisUPeclarar variveisU!tri-uir valores :TTTNomes e tipos de variveis 8TTT /pera Bes matemticas *TTT/ que uma fun oUPefinir uma fun o ?TTTRalor de retornoU%arNmetros =TTTC#amadas de fun Bes >TTT Exemplos de c#amadas de fun Bes DTTTRetores <V.TT !plica o de Retores <<TT. $trings

Вам также может понравиться