Sie sind auf Seite 1von 6

AULA 1 REVISO DO PADRO C ANSI 1

REVISO DE C-ANSI
Nesta aula, alguns conceitos bsicos do padro C-ANSI vistos nas disciplinas anteriores
sero apresentados novamente. Basicamente, a aula tratar de tipos de dados, operadores,
comandos e funes.

Tipos Bsicos de Dados


importante lembrarmos os tipos de dados em C, so eles: char, int, float, double e
void. Eles diferem quanto ao tamanho (em bits) e a faixa de valores que aceitam (lembre-se das
converses de sistemas numricos).

Alm disso, possvel alterar a faixa de valores que os tipos aceitam atravs de alguns
modificadores, sendo estes: signed, unsigned, long, short.

Vale lembrar que o tipo void informa ao compilador que a varivel ou funo no
possui/retorna tipo algum.

A Tabela 1 apresenta os tipos bsicos de dados com seus modificadores.


Tabela 1 Tipos bsicos de dados (retirado de SCHILDT, H. C., "C++: The Complete Reference").

importante salientar que o tamanho em bits pode ser diferente, dependendo do sistema
operacional e/ou compilador utilizado.

Processos Numricos Avanados para Eletrnica Renan Caron Viero


AULA 1 REVISO DO PADRO C ANSI 2

Para ter certeza do tamanho exato do tipo de dado utilizado, basta utilizar o operador
sizeof, conforme ilustra o Programa 1.

int main(void)
{
double dnum = 0;
int num = 0;
short int snum = 0;
char c = 0;
printf("tam: %d %d %d %d\n", sizeof dnum, sizeof num, sizeof snum, sizeof c);
system("PAUSE");
return 0;
}
Programa 1 Utilizando sizeof.

Variveis Globais e Locais


As variveis podem ser globais ou locais, dependendo de onde elas so declaradas.
Observe o Programa 2

No programa ao lado, uma


varivel global (var01) declarada.
Tal varivel pode ser alterada pela
funo declarada logo abaixo dela
bem como pela funo main() do
programa. J a varivel local
declarada dentro da funo no pode
ser alterada fora da funo.
Finalmente, a varivel local var04
no pode ser alterada fora do bloco
de cdigo no qual foi declarada.

Como exerccio, compilar este


programa.

Programa 2 Variveis globais/locais.

Processos Numricos Avanados para Eletrnica Renan Caron Viero


AULA 1 REVISO DO PADRO C ANSI 3

Operadores
As tabelas abaixo apresentam os operadores de C.
Tabela 2 Operadores Aritmticos de C (retirado de SCHILDT, H. C., "C: Completo e Total").

Tabela 3 Operadores Lgicos e Relacionais de C (retirado de SCHILDT, H. C., "C: Completo e Total")

Tabela 4 Operadores bit a bit de C (retirado de SCHILDT, H. C., "C: Completo e Total")

Tabela 5 Mais operadores de C.

Operador Funo / Utilizao


? Operador ternrio, realiza a operao if - then - else.
& Operador de ponteiro. Devolve o endereo do operando.
* Operador de ponteiro. Devolve o valor apontado pelo operando.
sizeof Retorna o tamanho em bytes de uma varivel ou tipo de dado.
, Encadeia expresses.
. Utilizado para referenciar elementos em estruturas e unies.
-> Utilizado para referenciar elementos em estruturas e unies utilizando ponteiros.
() Aumenta a precedncia em expresses.
[] Indexao de Matrizes.

Processos Numricos Avanados para Eletrnica Renan Caron Viero


AULA 1 REVISO DO PADRO C ANSI 4

muito importante lembrar a precedncia desses operadores para evitar possveis erros de
execuo. A Tabela 6 apresenta o resumo das precedncias.
Tabela 6 Resumo das Precedncias (retirado de SCHILDT, H. C., "C: Completo e Total")

Comandos de Controle
Podem ser de dois tipos bsicos. Comandos de seleo (if e switch) e de iterao
(while, for e do-while). Existem tambm os comandos de salto e desvio, sendo estes: break,
continue, goto e return.

O comando if tem a forma:

if (expresso) comando;
else comando;

A expresso pode ser qualquer expresso, no necessariamente uma expresso lgica ou


relacional. Lembre-se que em C-ANSI qualquer valor diferente de zero considerado verdadeiro, e
que zero considerado como sendo falso. O padro C-ANSI, diferentemente de outras linguagens,
no possui um tipo definido para uma varivel booleana.

O comando ? alternativo. Forma geral:

Expresso01 ? Expresso02 : Expresso03;

Aqui, a Expresso01 avaliada logicamente. Se Expresso01 for verdadeira toda a


expresso toma o valor de Expresso02. Se Expresso01 for falsa, toda a expresso toma o valor
de Expresso03;

Processos Numricos Avanados para Eletrnica Renan Caron Viero


AULA 1 REVISO DO PADRO C ANSI 5

O comando switch tem a forma:

switch(expresso)
{
case constante01: sequncia de comandos
break;
case constante02: sequncia de comandos
break;
(...)
default: sequncia de comandos
}

O comando switch naturalmente torna-se muito til para a implementao de menus.

O comando de iterao for tem a forma geral:

for(inicializao ; condio ; incremento) comando(s);

O loop se repete enquanto a condio for verdadeira. Nos laos for, a avaliao
condicional sempre ser realizada no topo do lao, enquanto o incremento ser realizado no final.
Vale lembrar que possvel criar loops for sem corpo (comandos), bem como possvel criar loops
for sem inicializao, condio ou incremento (ou sem todos).

O comando de iterao while tem a forma geral:

while(condio) comando(s);

O loop while se repete enquanto a condio for verdadeira. Como nos laos for, a
condio avaliada no incio do lao.

O comando de iterao do-while tem a forma:

do
{
comando(s);
} while(condio);

O comando do-while muito semelhante ao comando while, a nica diferena que a


condio avaliada no final do loop.

O comando de desvio break: O comando break, alm de seu uso inerente no comando
switch, faz com que o programa automaticamente saia de um loop, passando para a primeira
expresso aps o loop.

O comando de desvio continue: O comando continue faz com que o programa passe
automaticamente para a prxima iterao do loop.

O comando de desvio return: O comando return utilizado para retornar uma chamada
funo (retornando o valor da expresso que o sucede).

Processos Numricos Avanados para Eletrnica Renan Caron Viero


AULA 1 REVISO DO PADRO C ANSI 6

Funes
Funes so blocos de cdigo utilizados para facilitar a construo de programas.

A forma geral de uma funo :

tipo_de_retorno nome_da_funo(parmetros)
{
comandos;
}

Na maioria dos casos, a utilizao de funes reduz o tamanho do programa gerado (em
casos em que vrias chamadas a funo so necessrias).

Uma anlise mais profunda sobre funes ser feita na prxima aula.

Exerccio 1 Escreva um programa que calcula a resistncia eltrica de um fio de cobre. O


programa dever ler o comprimento do fio e tambm o dimetro do mesmo. Utilize uma funo
para retornar o valor da resistncia.

Lembrando que:

l
R
A
Onde R a resistncia, l o comprimento, A rea da seo do fio e a resistividade do
material. Considere a resistividade do cobre como 1.710-8 m.

Processos Numricos Avanados para Eletrnica Renan Caron Viero