Você está na página 1de 27

APLICAO DOS CONCEITOS FUNDAMENTAIS

Histrico da Linguagem de Programao C


A linguagem de programao denominada C foi criada em 1972 por Dennis
Ritchie no centro de Pesquisas da Bell Laboratories. Sua primeira utilizao
marcante foi a reescrita do Sistema Operacional UNIX, que at ento era escrito
na linguagem Assembly.
Em meados da dcada de 70 o sistema operacional UNIX deixou o laboratrio
para ser utilizado nas universidades. Foi o suficiente para que o sucesso da
linguagem atingisse grandes propores na rea de informtica. Por volta do ano
de 1980, j existiam vrias verses de compiladores C disponveis no mercado.
Com isso a linguagem C no estava mais restritas somente ao ambiente
operacional UNIX, mas j era utilizado por outros sistemas operacionais.
A linguagem C uma ferramenta de propsito geral, constituindo-se ainda em
uma ferramenta poderosa no desenvolvimento de programas em diversos
paradigmas de programao. No entanto mais utilizada na construo de
compiladores, analisadores lxicos, bancos de dados, editores de texto, entre
outras aplicaes. Veja a seguir alguns exemplos de aplicaes desenvolvidas
com esta linguagem:
Sistema Operacional
Banco de dados
Planilhas eletrnicas
Aplicaes grficas

UNIX
dBase III, IV e Access
Excel
Efeitos Especiais em filmes como: Star Trek e Star War

A Linguagem C de alto nvel, pois seus programas so elaborados por meio de


instrues prximas a linguagem de comunicao usada pelo ser humano
(comunicao natural), mas pode ser considerada de nvel intermedirio. Essa
classificao tambm considera a possibilidade que esta linguagem tem de
efetuar a codificao mais prxima da linguagem de mquina ou binria (baixo

nvel), otimizando alguns programas que precisam de manipulaes e acessos


muito especficos e dinmicos. Observe a seguir as indicaes relativas ao nvel
de classificao para algumas linguagens:

BAIXO NIVEL
+

CLAREZA PARA O SER HUMANO


VELOCIDADE DO PROGRAMA

Assembly

Cobol
Basic

Pascal

ALTO NIVEL
+
Ada
Modula-2

Linguagem Case Sensitive


A Linguagem C Case Sensitive, ou seja, as letras maisculas e minsculas
so manipuladas como smbolos completamente diferentes. Suponha a
necessidade de armazenamento da idade, em anos, de uma pessoa. Para isso
ser necessrio criar uma varivel no bloco de declaraes deste programa,
sendo nele includa a seguinte instruo:
inteiro IDADE;
Por meio desta declarao foi criada uma nica varivel, com o tipo de dado
inteiro, que recebeu o nome de identificao IDADE. Esta varivel seria
completamente diferente de outra que se chamasse idade ou iDaDe, pois as
letras que compem o seu nome esto diferentemente definidas em letras
maisculas e minsculas. Sendo assim, estas trs variveis poderiam ser
declaradas em um mesmo programa, no ocasionando nenhum tipo de erro de
compilao, pois elas so completamente diferentes. Mas este tipo de declarao
no aconselhada porque pode dificultar a compreenso do programador sobre
a ao realizada pelo cdigo proposto.
inteiro IDADE, idade, iDaDe;

As palavras reservadas nesta linguagem so escritas sempre em letras


minsculas, o que pode ocasionar erros, caso este cuidado no seja observado.
Por exemplo, a declarao da varivel IDADE no seria possvel porque o tipo de
dado especificado no existe.
INTEIRO IDADE;
O tipo de dado inteiro descrito por meio da palavra reservada inteiro, descrita
corretamente em minsculo, sendo a grafia proposta no exemplo anterior muito
diferente da reconhecida por esta linguagem.

Palavras Reservadas
Uma palavra reservada, em uma linguagem de programao, j possui um
significado definido na linguagem, no podendo ser utilizada para criao de
outros objetos, tais como variveis, constantes ou subprogramas, pois no
permitir a correta execuo da tarefa solicitada ao computador.
A Linguagem C possui 32 palavras reservadas, de acordo com o padro definido
pela American National Standards Institute (ANSI). Acompanhe a grafia correta
de cada uma delas na relao apresentada a seguir :

auto
break
case
char
const
continue
defaut
do

double
else
enum
extern
float
for
goto
if

int
long
register
return
short
signed
sizeof
static

O Corpo Principal dos Programa em C

struct
switch
typedef
union
unsigned
void
volatile
while

Um programa em C formado por no mnimo um subprograma, sendo este


obrigatrio para a criao de um programa. Este subprograma consiste de uma
funo especifica, sendo a nica a possuir um nome j definido - main (principal).
por meio dela que um programa executado, e sua ausncia no caracteriza a
existncia de um programa em C, mas um cdigo escrito na linguagem C que no
pode ser executado. Para a execuo do mesmo necessria a elaborao da
funo principal.
Outros subprogramas podem ser desenvolvidos pelo programador, atendendo as
necessidades que este tenha no desenvolvimento do seu programa, mas entre
estes subprogramas um ser a funo principal. Somente ela possui um nome j
definido (main), tendo todos os outros subprogramas seus nomes especificados
pelo programador, respeitando sempre as regras de fornecimento de nomes as
identificadores.

Comentrios

A utilizao de comentrios na elaborao de programas permite uma


compreenso mais rpida das tarefas realizadas pelo programa, principalmente
quando so desenvolvidos cdigos extensos. Em C, os comentrios comeam
com /* e terminam com */, mantendo-se todas as linhas existentes entre este
incio(/*) e fim (*\) de comentrio como informaes que no sero usadas pelo
compilador, mas que auxiliam na correta compreenso do programador. O uso de
// tambm insere um comentrio no programa, sendo este iniciado a partir do
cdigo (//) e se estendendo at o final da linha onde ele se encontra, por exemplo:

/* SNTESE
Objetivo: saudar o usurio
Entrada: nenhuma
Sada: mensagem de saudao
*/

#include <stdio.h>

// instruo da linguagem C

void main (void)


{
// DECLARAES

// instruo da linguagem C

// INSTRUES
printf(Ol usurio!!!);

// instruo da linguagem C

Incio de blocos
Assim como na elaborao do algoritmo, os programas em C tambm so
desenvolvidos por meio de alguns blocos lgicos principais (sntese, declaraes,
instrues), sendo todos eles destinados a uma organizao coerente na
codificao desejada. Respeitando esta organizao ser elaborado um cdigo
eficiente por um programador organizado que no tem dificuldades na
manipulao e manuteno dos seus programas.
SNTESE:
Este bloco representa um resumo lgico do que o programa dever fazer. A
confeco do mesmo identifica trs informaes relevantes que sintetizam as
atividades do programa, sendo elas: OBJETIVO (objetivo que este programa
atende); ENTRADA (as entradas de dados necessrias para atender este
objetivo); SADA (os dados de sada aps o processamento das entradas).
A construo da sntese deve ser cuidadosa, pois ela exatamente o algoritmo,
ou melhor, a sntese dele.
DECLARAES:
A criao dos recursos manipulados pelo programa ser efetuada neste bloco e
contribuir com a organizao no desenvolvimento do programa, pois facilitar
a compreenso no uso de cada recurso. Os recursos aqui citados consistem
das variveis, constantes e subprogramas.

INSTRUES:
Neste bloco so descritas as aes a serem realizadas por um programa que
busca atingir o objetivo almejado pelo programador que o elaborou. As
instrues ou comandos esto neste bloco.
Na construo dos algoritmos as palavras reservadas incio e fim representam
o comeo e o trmino deste bloco. Cada instruo tambm encerrada por
meio de uma pontuao especfica, sendo normalmente utilizado o ponto e
vrgula (;).
O desenvolvimento dos programas em C possuem as mesmas regras, porm a
grafia ou os smbolos so diferentes. O bloco iniciado pelo smbolo de
abertura de chaves ({) e encerrado pelo fechamento da mesma (}), enquanto
cada instruo terminada tambm pelo ponto e vrgula (;).

Observe o exemplo a seguir:

/* SNTESE
Objetivo: saudar o usurio
Entrada: nenhuma
Sada:
mensagem de saudao
*/
#include <stdio.h>
// instruo da linguagem C
void main (void)
{
// DECLARAES

// instruo da linguagem C

// INSTRUES
printf(Ol usurio!!!);
// instrues da linguagem C
printf(Seja bem vindo ao Curso de C);
}

Tipos de dados

Ao se declarar um objeto (constante, varivel, funo) necessrio identificar


qual o tipo de informao que ele manipular , pois atravs dessa declarao
que o computador poder verificar a existncia e a disponibilidade de espao
suficiente para que o programa possa ser executado com sucesso.
A Linguagem C possui cinco tipos de dados escalares, sendo eles determinantes
nas possibilidades de manipulao de informaes efetuadas pelo computador
que estiver executando o programa em C.
Tipo
Caracter
Inteiro
Real
No definido

Sintaxe em C
char
int
float
double
void

Tamanho (byte) Faixa


1
0 a 255
2
-32768 a 32767
4
3.4E-38 a 3.4E38
8
1.7E-308 a 1.7E308
0
sem valor

Observe a correta sintaxe na criao de algumas variveis e constantes em C.

const int TAXA = 15;


char LETRA;

// cria uma constante do tipo inteiro.

// cria a varivel LETRA que armazena um nico caracter

int VALOR;

/* cria uma varivel inteira com certa capacidade de


armazenamento */
float SALARIO; /*varivel real com certa preciso (3.4*10-38 3.4*1038) */
double PI; /* varivel real com grande preciso (1.7*10 -308 1.7*10308 ) */

Modificadores dos Tipos de Dados


A mudana nas propriedades relacionadas ao armazenamento de dados em C,
podem ocorrer por meio dos modificadores. Eles so aplicados a alguns dos tipos
de dados escalares da linguagem. Na relao a seguir so apresentados os
quatro modificadores existentes na Linguagem C padro ANSI.

long

short
signed
unsigned
Os modificadores no podem ser aplicados a qualquer tipo, por exemplo: em
float no se pode aplicar nenhum deles (no tem efeito algum), enquanto que o
int aceita qualquer um dos quatro.
A uso dos modificadores long e short contribuem com o aumento ou reduo do
espao de armazenamento do dado na memria. O unsigned permite a
manipulao dos valores sem sinal, ou seja, s os valores positivos.

Criao ou Declarao de Varivel e Constantes


As variveis e constantes em C podem possuir qualquer nome desejado pelo
programador, desde que estes nomes respeitem as regras de criao dos
identificadores, como esclarecido anteriormente.
Para se utilizar variveis ou constantes em C necessria a declarao de cada
uma delas, respeitando as regras de organizao e sintaxe da linguagem. A
forma geral de declarao destes dois recursos so apresentadas abaixo:

Forma geral para varivel:


<tipo de dado> <nome da varivel> ;

Forma Geral para constante


const <tipo de dado> <nome da constante> = <valor atribudo a constante>;

No algoritmo a seguir, veja as instrues que criam uma constante inteira e duas
variveis (uma real e outra caracter).

Sntese
Objetivo: declarar uma constante e duas variveis
Entrada: nenhuma
Sada:
nenhuma
Declaraes
inteiro numero;
real money;
Incio
{ sem instrues }
Fim

Acompanhe a traduo deste algoritmo para a linguagem computacional


denominada C:

/* SNTESE
Objetivo: declarar uma constante e duas variveis
Entrada: nenhuma
Sada:
nenhuma
*/
#include <stdio.h>
// instruo da linguagem C
void main (void)

// instruo da linguagem C

{
// DECLARAES
const int TUDO = 100; // declarao da constante inteira TUDO
char LETRA;
float SALARIO;

// declarao da varivel caracter chamada LETRA


// declarao de uma varivel do tipo real

// INSTRUES
/* instrues a serem executadas pelo programa */
}

ESTRUTURA DE UM PROGRAMA
Um programa em C possui caractersticas que devem ser obedecidas, pois um
erro de sintaxe ou semntica resultam na falha de cumprimento do objetivo
almejado pelo programa.
Na continuao da aprendizagem sobre a programao estruturada, todos os
cdigos, ou programas, em C devero ser elaborados respeitando a estrutura de
desenvolvimento de programas em trs grandes blocos, sendo eles:

SNTESE;

DECLARAES;

INSTRUES.

O exemplo a seguir mostra a organizao destas estruturas em um algoritmo


simples, descrito respeitando as regras do portugus estruturado.

Sntese
objetivo: exemplificar a estrutura padro de um programa escrito em C
entrada: nenhuma
sada: mensagem de sucesso no primeiro programa
Declaraes
Incio
escreva(Esse o meu primeiro programa!!);
Fim

A transformao deste algoritmo em um programa em C apresentado na


sequncia. Observe que as estruturas se mantm, apesar de conterem alguns
simples detalhes importantes que as diferenciam.

/*SNTESE

objetivo: exemplificar a estrutura padro de um programa escrito em C


entrada: nenhuma
sada: mensagem de sucesso no primeiro programa
*/
#include <stdio.h> // incluso da biblioteca padro de entrada e sada
void main (void)

// inicio do programa - funo main()

// abertura do bloco principal da funo main()


// DECLARAES

/* declaraes das variveis e constantes */


// INSTRUES
printf(Esse o meu primeiro programa!!); // funo de escrita na tela
getch();
}

// fora uma parada para leitura


// final da funo main(), logo fim do programa

Com a elaborao do algoritmo, seguido de sua traduo para a linguagem C,


possvel identificar algumas descries diferentes que so muito importantes para
o programa em C. Acompanhe com ateno alguns cuidados importantes na
elaborao de um programa fonte nesta linguagem:

No incio do programa o pr-processador deve ser acionado, por meio do


cdigo #, para incluir alguma biblioteca que seja necessria ao cdigo, ou
programa proposto;

O bloco de instruo iniciado pela abertura de uma chave ({ - Incio) e


encerrado pelo fechamento da chave ( } - Fim);

Um programa em C sempre ter ao menos um subprograma, a funo


main, pois a partir dele que tudo executado;

Toda instruo termina com um ponto e vrgula (;);

Os comentrios a serem inseridos no programa fonte so antecedidos


pelos cdigos (// - comentrio at o final da linha) ou entre /* e*/ que inseri
um comentrios a partir do /* at o seu final no smbolo */.

No exemplo anterior foi possvel acompanhar a elaborao de um algoritmo e sua


traduo para a linguagem C, onde ambos esto respeitando as regras de
sinttica, semntica e a organizao na descrio do programa.

INTRODUO BSICA AS ENTRADAS E SADAS


A expresso ENTRADA significa, para a rea de programao, todos os dados
que sero informados ao computador atravs dos dispositivos de entrada
acoplados a ele (teclado, mouse, scanner, etc.). Existe porm um dispositivo
padro para a leitura de dados na Linguagem C, o teclado, que sempre
acionado para ler valor(es) quando no existe nenhuma especificao. A SADA
representa todo dado que passado do computador para o usurio por meio dos
respectivos dispositivos (monitor, impressora, caixas acsticas, discos, etc.). Da
mesma forma, esta linguagem tambm possui um dispositivo padro de sada,
sendo ele o monitor.

Quando o usurio digita algum dado no teclado


do computador, ele est fornecendo informaes
para o mesmo, atravs do dispositivo de entrada
padro. Com isso o computador poder usar
estes dados para

processar as informaes

desejadas, apresentando os resultados obtidos


ao usurio.

Esta apresentao acontecer atravs de um


dispositivo de sada, podendo ser o prprio
monitor de vdeo, dispositivo padro de sada
em C, caso nenhum outro seja especificado pelo
usurio.

Conhecendo a importncia da comunicao do computador com seus usurios,


assim como dos usurios para com o computador, ser esclarecida a seguir as
instrues em C que possibilitam a entrada e sada de dados no computador.

Instruo de Sada

A primeira instruo a ser apresentada consiste de uma funo, ou seja, de um


subprograma existente na biblioteca stdio.h existente em todos os compiladores
da Linguagem C que respeitam o padro ANSI.

# Funo printf()
Esta funo responsvel pela apresentao de dados no dispositivo padro de
sada da Linguagem C. Por se tratar de uma funo, esta instruo no uma
palavra reservada da linguagem, mas sua utilizao como nome de um outro
recurso no programa (varivel, constante, subprograma) pode dificultar a
compreenso e manipulao do mesmo. A representao da forma geral desta
funo mostrada a seguir:

printf("<expresso de controle>", lista de argumentos);

A expresso de controle obrigatria e sempre estar entre aspas ("). Ela


controla tudo que ser apresentado ao usurio, usando de cdigos especiais para
apresentar dados de qualquer tipo, alm de algumas orientados sobre o
posicionamento da informao na tela. Para mostrar dados de qualquer tipo so
utilizados os cdigos precedidos do smbolo percentual (%), enquanto que as
orientaes na tela tem um cdigo com o precedente com a barra invertida (\).
Na expresso de controle so inseridos os cdigos correspondentes a
apresentao desejada, consistindo assim na mscara que controlar a
apresentao das informaes ao usurio. Nesta mascara so definidos os tipos
de dados a serem apresentados, alm de qual a posio na expresso de
controle que eles sero mostrados no monitor.
Cada cdigo % deve referenciar um valor ou recurso (varivel, constante,
subprograma) especificado na lista de argumentos do printf. Esta lista iniciada
aps a expresso de controle, sendo separada por vrgula (,). A vrgula tambm
separa os diferentes elementos existentes nessa lista que so correspondentes a
cada cdigo percentual existente na expresso de controle.
Existem vrios cdigos % que referem-se a diferentes tipos de dados que podem
ser manipulados, mas os relacionados a seguir sero suficientes para a
aprendizagem inicial nesta linguagem de programao.
Cdigo
%d
%f
%c
%s
%o
%x
%lf
%%

Significado
Inteiro
Real (float)
Caractere
String
Octal
Hexadecimal
Real grande (double)
Mostra um %

A seguir, observe alguns exemplos que usam esta funo de sada:

printf(Testar); // apresenta somente a string da expresso de controle

printf(Tem %d valores,VALOR); // apresenta o valor inteiro na posio %d


printf(Valor = %f e o caracter de sexo de uma pessoa %c, 23.5, M);
printf(%s legal,Maria); // Apresenta o nome na posio do %
# Funo scanf()
Esta funo faz a leitura dos dados informados pelo usurio. Ela possui a mesma
organizao da printf, mas fazendo a leitura dos dados, por isso sua manipulao
ocorre sobre os dispositivos de entrada de dados, sendo o teclado acionado por
esta funo. Observe a representao da forma geral desta funo:

scanf("<expresso de controle>", lista de argumentos);

Observe os exemplos de leitura de dados do usurio.


scanf(%d,&NUMERO); //armazena um valor inteiro no endereo de NUMERO
scanf(%f%c,&VALOR, &SEXO); // armazena um valor real e outro caracter

A leitura de um dado deve ser armazenada em uma varivel, pois o valor


informado poder ser usado na realizao de algum processamento do
programa. Para que ele fique disponvel para o programa necessrio, primeiro,
a declarao da varivel, que deve ter o tipo de dado coerente com a leitura
desejada.
A leitura do dado deve ser armazenada no endereo de memria que o
computador alocou para a varivel declarada. Por isso o operador & utilizado
nesta funo, armazenando o valor informado pelo usurio no correto endereo
de memria onde tal varivel foi criada pelo computador.

Anlise o que algoritmo a seguir faz.

Sntese
objetivo: ler e escrever dados
entrada: uma idade, um salrio e a letra inicial do sexo de uma pessoa
sada: a idade, o salrio e o sexo informado pelo usurio
Declarao
inteiro IDADE;
real SALARIO;
caractere SEXO;
Inicio
escreva(Informe a idade: );
leia(IDADE);
escreva(Informe o salrio: );
leia(SALARIO);
escreva(Informe M para masculino ou F para feminino: );
leia(SEXO);
escreva(Sua idade = , IDADE, e seu salrio = ,SALARIO);
escreva(A letra inicial do seu sexo = ,SEXO);
Fim

Agora, observa a traduo do algoritmo em um programa em C.

/*SNTESE
objetivo: ler e escrever dados
entrada: uma idade, um salrio e a letra inicial do sexo de uma pessoa
sada: a idade, o salrio e o sexo informado pelo usurio
*/
#include <stdio.h>
#include <conio.h>
void main(void)
{
// DECLARAES
int IDADE;
float SALARIO;
char SEXO;
// INSTRUES
printf("Informe a idade: ");
scanf("%d",&IDADE);
printf("Informe o salrio: ");
scanf("%f",&SALARIO);

printf("Informe M para masculino ou F para feminino: ");


scanf("%c",&SEXO);
printf("\nSua idade = %d e seu salrio = %f ", IDADE, SALARIO);
printf("\nA letra inicial do seu sexo = %c,SEXO);
getch();
}

As duas ltimas instrues printf possuem um cdigo de barra invertida, que


controla o posicionamento na tela. Especificamente o cdigo \n leva o cursor
para a prxima linha. Este cursor identifica a posio onde sero apresentados os
valores de sada desejados.

# Funo getch()
Esta funo faz a leitura imediata de um caractere do teclado, no utilizando a
memria temporria (buffer) para armazena-lo. Ela permite ainda que o caractere
pressionado seja mostrado na tela. Veja no exemplo a seguir a leitura de um
caractere por meio desta funo, sendo ele armazenado na varivel LETRA.

void main ()
{
// DECLARAES
char LETRA;
// INSTRUES
LETRA = getche();
}

# Funo getch()

// incio do corpo da funo principal

// retorna o valor lido e o atribui a LETRA

Similar a funo getche(), esta funo tambm l um caractere do teclado, sem


usar o buffer, mas ela no permiti a sua apresentao no dispositivo de sada
padro (monitor).

void main ()
{
// DECLARAES
char TECLA;
// INSTRUES
TECLA = getch();
}

// incio do corpo da funo principal

// retorna o valor lido e o atribui a TECLA

# Funo getchar()
A leitura de um nico caractere tambm realizada por esta funo, mas ela usa
o buffer para efetuar esta leitura, sendo necessrio pressionar a tecla ENTER
aps digitar a tecla desejada. A tecla digita permanece na memria temporria
(buffer) at que o ENTER seja pressionado, o que solicitar ao computador a
copia dos dados do buffer para a memria principal, memria esta que o
computador utiliza para manipular os dados enquanto so processados. Observe
a sintaxe similar da getchar() com as outras funes que fazem a leitura de um
nico caractere.

void main ()
{
// DECLARAES
char TECLA;

// incio do corpo da funo principal

// INSTRUES
TECLA = getchar(); /* retorna o valor lido na varivel TECLA
usando o buffer */
}

Operadores Lgicos e Relacionais


Os operadores relacionais so usados para identificar o relacionamento existente
entre dados, contribuindo muito com o processamento a ser efetuado por um
programa.
O resultado da aplicao de um operador relacional sempre ser lgico, ou seja,
VERDADEIRO ou FALSO.
Na Linguagem C esses operadores respeitam a sintaxe apresentada na tabela a
seguir:
Operador em Algoritmo

Operador em C

Significado da Operao

>

>

Maior do que

>=

>=

Maior ou igual a

<

<

Menor do que

<=

<=

Menor ou igual a

==

Igual a

<>

!=

Diferente de

Observe a seguir alguns exemplos na aplicao dos operadores relacionais.

Exemplo em Algoritmo

VALOR = 0 // verifica se VALOR igual a zero


MAX > 1 // verifica se MAX maior que um
LETRA <> "A" // verifica se LETRA diferente de "A"

Sintaxe do exemplo em
C

VALOR == 0
MAX > 1
LETRA != 'A'

No terceiro exemplo (LETRA <> "A") esta se comparando um caractere com o


contedo da varivel LETRA, que tambm deve ser do tipo caractere. Porm a
transformao deste exemplo para a operao relacional respectiva em C usa o
apostrofe aos invs das aspas do algoritmo. A identificao de um nico

caractere em C feita por apostrofe (aspas simples), enquanto que as aspas


(aspas duplas) so aplicadas somente a um conjunto de caracteres (string).

Os operadores lgicos de conjuno (E), disjuno (OU) e negao (NO)


tambm possuem uma sintaxe diferente na Linguagem C. Observe na relao a
seguir a sintaxe de cada um deles que permitem a elaborao de expresses
relacionais mais complexas e abrangentes.
Operador Lgico em Algoritmo

Operador Lgico em C

E
OU
NO

&&
||
!

Acompanhe na sequencia a reviso das operaes lgicas efetuadas sobre as


tabelas verdades representadas a seguir. Suponha que os valores atribudos as
variveis A e B sejam os representados por V (verdadeiro) e F (falso).

Operador E Lgico em C

A
V
V
F
F

B
V
F
V
F

A && B
V
F
F
F

Operador OU Lgico em C

A
V
V
F
F

B
V
F
V
F

A || B
V
V
V
F

Operador NO
Lgico em C

A
V
F

!A
F
V

O exemplo a seguir mostra as operaes relacionais na expresso proposta e


seu resultado.

((5 > 5) || ((2 != 3) && (1 < 3))) => o resultado desta expresso Verdadeiro

Sempre deve haver cuidado com a anlise da expresso proposta, pois os


parnteses interferem diretamente no resultado final, modificam a ordem da

sequencia alcanada por cada expresso, pois eles alteram a precedncia das
operaes (prioridades), por exemplo:

3 + 5 * 2 = 13 mas com o uso dos parnteses pode-se ter que (3+5) * 2 = 16

Operador de atribuio
O operador de atribuio utilizado para atribuir um valor a uma varivel ou
constante, somente na sua declarao, pois no decorrer do programa a constante
no recebe nenhum outro valor. Este operador sempre armazena o valor, ou o
resultado da expresso, que est a direita do smbolo de atribuio (um sinal
igual = ), armazenando este valor, ou resultado da expresso, na varivel que
est a sua esquerda.

Veja a diferena existente na sintaxe usado pelo algoritmo e sua respectiva


traduo para a Linguagem C:

Algoritmo
VALOR

Linguagem C
50;

VALOR = 50;

Operadores Aritmticos

Os operadores aritmticos em C possuem a sua sintaxe especificada por meio


dos smbolos identificados a seguir:

SMBOLO DO OPERADOR

+
-

OPERAO

Adio
Subtrao

*
/

Multiplicao
Diviso
Mdulo (resto da diviso de
inteiros)

A operao de diviso de inteiros (div do algoritmo) em C acontece sempre que


dois valores inteiros so divididos (/), como pode ser visto na comparao a
seguir:

5/2 =2

enquanto que

5.0 / 2 = 2.5

O resultado destas operaes so apresentadas pela linguagem C, quando forem


solicitadas dessa forma. Por isso deve ter cuidado com as operaes de diviso
a serem solicitadas no programa, pois o resultado sempre estar relacionado a
sintaxe e a lgica desejada na elaborao da expresso.
Acompanhe o algoritmo que efetua uma operao aritmtica.

Sntese
Objetivo: somar duas variveis
Entrada: nenhuma
Sada: resultado da soma
Declaraes
inteiro VALOR_1, VALOR_2, RESULTADO;
Inicio
VALOR_1

35;

VALOR_2

42;

RESULTADO

VALOR_1 + VALOR_2;

escreva (Total = , RESULTADO);


Fim

Acompanhe agora a traduo deste algoritmo para o programa computacional em


C.

/*SNTESE
Objetivo: somar duas variveis
Entrada: nenhuma
Sada: resultado da soma
*/
void main ()
{
// DECLARAES
int VALOR_1, VALOR_2, RESULTADO; // declaraes das variveis
// INSTRUES
VALOR_1 = 35;

// atribuio de 35 a VALOR_1

VALOR_2 = 42;

// atribuio de 42 a VALOR_2

RESULTADO =VALOR_1+VALOR_2; // soma e atribui a RESULTADO


printf (Total = %d ,RESULTADO); // mostra o valor da adio atribudo
}

Veja o resultado apresentado no monitor de vdeo do computador que est


executando este programa.

Incremento e decremento
Os operadores de incremento ou decremento podem ser escritos de uma forma
mais simplificada na Linguagem C.

O incremento representa um simples

contador que acrescenta um ao valor da varivel inteira utilizada na expresso.


Por exemplo:

CONTADOR

CONTADOR + 1;

equivale a

CONTADOR++;

Estes operadores podem ser descritos de duas forma diferentes:


Pr-fixados (++CONTADOR)
Ps-fixados (CONTADOR++)
Estas diferenas so significativas, por isso acompanhe com ateno os
exemplos a seguir:

Supondo os valores de X = 10; e

Y = 0;

Pr-incremento (pr-fixado)

Y = ++X; equivale a X = X+1; primeiro X incrementado de 1


Y = X;

depois X atribudo a Y.

Seus valores finais, aps as operaes acima seriam de X e Y igual a 11.

Ps-incremento (ps-fixado)

Y = X++; equivale a Y = X;

primeiro X atribudo a Y.

X = X+1; depois X incrementado de 1.

Iniciando com os menos valores propostos acima, os valores finais para as


operaes de ps-incremento seriam de X igual a 11 e Y igual a 10.

As mesma lgica envolve os operadores de decremento em C:

Pr-decremento

Y = --X; equivale a X = X -1; primeiro X decrementado de 1.


Y = X;

depois X atribudo a Y.

Seus respectivos valores finais so: X = 9 e Y = 9.

Ps-decremento

Y = X--; equivale a Y = X;

primeiro X atribudo a Y.

X = X -1; depois X decrementado de 1.

Com os mesmos valores iniciais, X encerrado com 9 e Y com 10.

Operaes de Atribuio Simplificadas


A forma como as operaes de atribuio so descritas em uma expresso
tambm podem ser simplificadas n a Linguagem C, porm isso deve ser
compreendido corretamente, pois esta representao pode tornar-se um
complicador na compreenso das expresses.

Expresso Convencional

Expresso Equivalente em C

X = X + Y;
X = X - Y;
X = X * Y;
X = X / Y;
X = X % Y;

X += Y;
X -=Y;
X *= Y;
X /= Y;
X %= Y;

/*SNTESE
Objetivo: somar duas variveis
Entrada: valor das variaveis
Sada: resultado da soma
*/
void main( )
{
// DECLARAES
int NUMERO_1, NUMERO_2;
// INSTRUES
printf (Informe o primeiro valor: );
scanf(%d,&NUMERO_1);
printf (\nInforme o segundo valor: );
scanf(%d,&NUMERO_2);

NUMERO_1 += NUMERO_2; /*equivalente a expresso


NUMERO_1=NUMERO_1+NUMERO_2 */
printf (\nValor 1 = %3d e Valor 2 = %3d", NUMERO_1, NUMERO_2);
getch(); /* aguarda ser informada uma tecla
para encerrar o programa */
}

Supondo que o usurio do programa digitou os valores 13 e 5, respectivamente,


sendo a execuo do programa demonstrada na representao do monitor de
vdeo a seguir: