Você está na página 1de 26

As operaes aritmticas tradicionais so a adio, a subtrao, a multiplicao e a

diviso, embora operaes mais avanadas (tais como as manipulaes de porcentagens,


raiz quadrada, exponenciao e funes logartmicas) tambm sejam por vezes includas
neste ramo. A aritmtica desenrola-se em obedincia a uma ordem de operaes.
A aritmtica abrange o estudo de algoritmos manuais para a realizao de operaes
com os nmeros naturais, inteiros, racionais (na forma de fraes) e reais. Tais
operaes, no entanto, podem ser realizadas com o uso de ferramentas como
calculadoras, computadores ou o baco, o que no lhes tira o carcter aritmtico.

Operadores Aritmticos e de Atribuio


As linguagens de programao dispes de uma variedade considervel de operadores aritmticos,

Os operadores aritmticos so usados para desenvolver operaes matemticas. A


seguir apresentamos a lista dos operadores aritmticos do C:

Operador
+
*
/
%
++
--

Ao
Soma (inteira e ponto flutuante)
Subtrao ou Troca de sinal (inteira e ponto
flutuante)
Multiplicao (inteira e ponto flutuante)
Diviso (inteira e ponto flutuante)
Resto de diviso (de inteiros)
Incremento (inteiro e ponto flutuante)
Decremento (inteiro e ponto flutuante)

O C possui operadores unrios e binrios. Os unrios agem sobre uma varivel apenas,
modificando ou no o seu valor, e retornam o valor final da varivel. Os binrios usam
duas variveis e retornam um terceiro valor, sem alterar as variveis originais. A soma
um operador binrio pois pega duas variveis, soma seus valores, sem alterar as
variveis, e retorna esta soma. Outros operadores binrios so os operadores (subtrao), *, / e %. O operador - como troca de sinal um operador unrio que no
altera a varivel sobre a qual aplicado, pois ele retorna o valor da varivel
multiplicado por -1.
O operador / (diviso) quando aplicado a variveis inteiras, nos fornece o resultado da
diviso inteira; quando aplicado a variveis em ponto flutuante nos fornece o resultado
da diviso "real". Assim seja o seguinte trecho de cdigo:
int a = 17, b = 3;
int x, y;
float z = 17. , z1, z2;
x = a / b;
y = a % b;
z1 = z / b;
z2 = a/b;

ao final da execuo destas linhas, os valores calculados seriam x = 5, y = 2, z1 =


5.666666 e z2 = 5.0 . Note que na linha correspondente a z2, primeiramente feita uma
diviso inteira (pois os dois operandos so inteiros). Somente aps efetuada a diviso
que o resultado atribudo a uma varivel float.
Os operadores de incremento e decremento so unrios que alteram a varivel sobre a
qual esto aplicados. O que eles fazem incrementar ou decrementar, a varivel sobre a
qual esto aplicados, de 1. Ento
x++;
x--;

so equivalentes a
x=x+1;
x=x-1;

Estes operadores podem ser pr-fixados ou ps- fixados. A diferena que quando so
pr-fixados eles incrementam e retornam o valor da varivel j incrementada. Quando
so ps-fixados eles retornam o valor da varivel sem o incremento e depois
incrementam a varivel. Ento, em

x=23;
y=x++;

teremos, no final, y=23 e x=24. Em


x=23;
y=++x;

teremos, no final, y=24 e x=24. Uma curiosidade: a linguagem de programao C++


tem este nome pois ela seria um "incremento" da linguagem C padro. A linguagem C+
+ igual a linguagem C s que com extenses que permitem a programao orientada a
objeto, o que um recurso extra.
O operador de atribuio do C o =. O que ele faz pegar o valor direita e atribuir
varivel da esquerda. Alm disto ele retorna o valor que ele atribuiu. Isto faz com que as
seguintes expresses sejam vlidas:

x=y=z=1.5;
if (k=w) ...

/* Expressao 1 */
/* Expressao 2 */

A expresso 1 vlida, pois quando fazemos z=1.5 ela retorna 1.5, que passado
adiante. A expresso dois ser verdadeira se w for diferente de zero, pois este ser o
valor retornado por k=w. Pense bem antes de usar a expresso dois, pois ela pode gerar

erros de interpretao. Voc no est comparando k e w. Voc est atribuindo o valor de


w a k e usando este valor para tomar a deciso.
As linguagens de programao dispes de uma variedade considervel de operadores aritmticos, e
como veremos posteriormente, a linguagem C e C++ tm um grande conjunto de operadores.
Reportemo-nos por agora aos mais comuns.
Trataremos aqui de conhecer:
Os operadores aritmticos

Expresses aritmticas
Regras de Precedncia e Associao
Regras de Avaliao
Operadores Aritmticos
Os operadores aritmticos esto implementados na generalidade das linguagens de programa, ainda
que possam ter algumas ligeiras variaes em alguns casos.
Os operadores podem subdividir-se em:
Operadores unrios - por envolverem apenas um operador

Operadores binrios - por envolverem dois operadores


Operadores de atribuio - por permitirem a atribuio de um valor a uma varivel
Operadores especiais - existentes em algumas linguagens como a C e C++
Operadores unrios (de sinal)
Operador

Smbolo

Exemplo

Operao

menos

-x

negao de x

mais
*
+x
valor do operando
.
O operador de sinal no deve ser confundido com o operador subtraco e soma, pois apesar de
utilizarem o mesmo smbolo, so operadores diferentes.
Assim nos seguintes exemplo:
supondo que m = 5
ento -m ser igual a -5.
supondo a expresso j = 3 - - x
esta ser interpretada como sendo J = 3 - ( -x )

Operadores binrios
Operador

Smbolo

Exemplo

Operao

multiplicao

x*y

multiplica x por y

diviso

x/y

divide x por y

soma

x+y

soma x a y

subtraco

x-y

de x subtrai y

Em relao aos operadores de atribuio, a generalidade das linguagens implementa o operador


igual, sendo que a linguagem C e C++ implementam outros que veremos posteriormente aquando do
estudo das linguagens.

Operador de atribuio
Operador

Smbolo

Exemplo

Operao

igual

x=y

atribui o valor de Y a x

Operador especial
Algumas linguagens dispem ainda de um operador ou funo que permite calcular o resto da
diviso inteira de dois nmeros, .que representaremos por agora por resto(x,y).
assim por exemplo o resto(9,5) 4
Veremos posteriormente algumas aplicaes deste operador.

Expresses aritmticas
Uma das capacidades mais importante do computador a facilidade de manipulao de expresses
matemticas mais ou menos complexas, pelo que de importncia capital a compreenso da forma
como estas so tratadas.
Um programa depois de escrito passa, como vimos, por um processo de compilao antes da sua
execuo efectiva. No processo de compilao so executadas, entre outras tarefas a interpretao das
declaraes do programa e o estabelecimento da sequncia de operaes a serem executadas a propsito
de cada uma delas.
No caso das expresses aritmticas este processo executado tendo em ateno duas propriedades
fundamentais, a precedncia e a associao. Estas propriedades afectam a forma como os operadores
so aos operadores.
A precedncia - estabelece que os operadores de maior precedncia tm os seus operandos
atribudos antes dos de menor precedncia, independentemente da ordem em que surjam na
expresso. Veja a tabela de precedncias e associao.
Considere os seguintes exemplos:
2+3*4
3*4+2
Em ambos os casos a expresso avaliada em 14. Isto acontece porque primeiro executada a
multiplicao por ter maior precedncia e s depois a soma.

A associao - estabelece, no caso dos operadores terem a mesma precedncia, a ordem pela
qual os operandos sero agrupado, da esquerda para a direita ou da direita para a esquerda.
Esta propriedade estabelecida para cada operador. Veja a tabela de precedncia e associao
que se segue.
Considere o seguinte exemplo:

a+b-c
Esta expresso ser agrupada da esquerda para a direita, de acordo com as suas propriedades de
associao, pelo que a ordem ser primeiro a soma e s depois a subtraco.
So tambm utilizados os parntesis curvos para a criao de expresses matemticas, que impem
uma determinada ordem de agrupamento.
Considere os seguintes exemplos:
(2-3)*4
2 - ( 2 * 4)
No primeiro exemplo seria avaliado primeiro o parntesis ( 2 - 3 ) e s depois seria efectuada a
multiplicao.
No segundo exemplo os parntesis seriam desnecessrios j que a multiplicao tem precedncia
relativamente subtraco. No entanto, uma boa prtica que, mesmo que irrelevantes sejam
utilizados os parntesis mesmo nas expresses mais simples.
No caso de expresses com parntesis encaixados, a ordem de agrupamento do mais interior ao
mais exterior, sendo aplicada a propriedade da associatividade correspondente aos operadores
envolvidos.
Assim na seguinte expresso 1 + ( ( 3 + 1 ) / ( 8 - 4 ) - 5 ) a ordem de agrupamento ser:
1+((3+1)/(8-4)-5)
1+(4/(8-4)-5)
1 + (4 / 4 - 5)
1+(1-5)
1+-4
-3

Regras de Precedncia e Associao

Classe do operador

Operadores da
classe

unrios
multiplicativo

Associatividade

+ !

direita / esquerda

Resto()

Esquerda / direita

aditivo

+ -

esquerda / direita

relacionais

< <= > >=

esquerda / direita

igualdade

esquerda / direita

AND
OR
atribuio

&&
||
=

Precedncia
maior

esquerda / direita
esquerda / direita
direita / esquerda

menor

Voltaremos a este assunto a propsito das linguagens de programao.

Regras de Avaliao
Como foi referido anteriormente, a avaliao um processo distinto, constituindo uma propriedade
importante. Esta refere-se ordem pela qual o compilador avalia os operadores. Os compiladores
reorganizam as expresses desde que esta no afecte o resultado.
Chama-se a ateno para o facto de a diviso poder levantar alguns problemas em alguns
compiladores, especialmente quando esto envolvidos operandos de tipos diferentes ou operandos
negativos.
No caso dos operandos serem de tipo diferente devemos forar a converso entre tipos.
Relativamente aos operandos negativos, estes devem ser evitados..

Conhecendo os operadores aritmticos em C++


Operadores Aritimticos C++
Tipo

Operador

Sintaxe

Adio

a+b

Subtrao

a-b

Multiplicao

a*b

Diviso

a/b

Mdulo(resto)

5 % 2 (resulta 1)

Pr incremento

++

++a

Ps incremento

++

a++

Pr decremento

--

--a

Ps decremento

--

a--

Atribuio por adio

+=

a += b o mesmo que (a= a+b)

Atribuio por subtrao


Atribuio por
multiplicao
Atribuio por diviso

-=

a -= b o mesmo que (a= a-b)

*=

a *= b o mesmo que (a= a*b)

/=

a /= b o mesmo que (a= a/b)

Atribuio por mdulo

%=

a%=b o mesmo que (a= a%b)

Operadores relacionais ou comparativos como o prprio nome diz, oferecem a


possibilidade de estabelecer uma relao comparativa/condicional entre seus operandos.
Preparamos uma tabela contendo os operadores relacionais/comparativos em C++ e
suas funes:

Operadores Relacionais C++


Tipo

Operador

Sintaxe

Menor que

<

a<b

Maior que

>

a>b

Menor ou igual que

<=

a <= b

Maior ou igual que

>=

a >= b

Igual a

==

a == b

Diferente de

!=

a != b

No (Lgico)

!a

E (Lgico)

&&

a && b

Ou (Lgico)

||

a || b

Exemplos de comportamento
Operador

Retorno ( verdadeiro / falso )

< Menor que


30 < 20

falso

30 < 60

verdadeiro

30 < 30

falso

> Maior que


30 > 1

verdadeiro

30 > 100

falso

30 > 29

verdadeiro

<= Menor ou igual que


30 <= 30

verdadeiro

30 <= 29

falso

30 <= 80

verdadeiro

>= Maior ou igual que


30 >= 30

verdadeiro

30 >= 10

verdadeiro

30 >= 40

falso

== Igual a
30 == 30

verdadeiro

30 == 32

falso

!= Diferente de
30 != 20

verdadeiro

30 != 10

verdadeiro

30 != 30

falso

! No
!(30 == 30)

falso

!(30 > 10)

falso

!(30 < 1)

verdadeiro

&& E
(10 > 1 && 1>=1)

verdadeiro

(10 != 11 && 1>2)

falso

|| Ou
(10 > 20 || 30 > 20)

verdadeiro

(40 != 10 || 20==30)

verdadeiro

Operadores Lgicos E (&&), OU (||) e de Negao (!)


Vimos no artigo passado de nossa apostila de C, uma explicao sobre
valores lgicos true ou false em computao.
Vamos agora entrar mais em detalhes e ver como possvel representar
informaes apenas com true ou false, 1 ou 0.
E bem como o artigo passado, usaremos apenas idias e conceitos, nada de
cdigo por hora.

Operador lgico 'E' em


linguagem C: &&
Vamos supor que voc passou em um concurso, o cargo para ser
programador e trabalhar para o governo.
No edital voc leu: necessrio ser brasileiro e ser maior de 18 anos.
Ou seja, voc s pode fazer esse concurso se for brasileiro E TAMBM se
tiver de 18 anos ou mais.
Se for brasileiro mas tiver menos de 18 anos, no pode.
Se tiver mais de 18 anos mas no for brasileiro, tambm no pode.
Ou seja: todas as condies devem ser obedecidas para termos um
resultado positivo (que no caso poder fazer o concurso).
Vamos agora trazer para o nosso mundo da programao em linguagem C.
Esse E, vamos representar por &&
Ento, para fazer o concurso: (ser brasileiro) && (ter 18 anos ou mais)
Vamos supor que voc brasileiro. Vamos representar esse fato como '1',
pois verdade.
Vamos supor que voc tem 18 anos, representaremos isso pelo valor lgico
'1' tambm.
Ento: 1 && 1 resulta em verdade, ou 1.
E se voc for menor?
Nossa expresso fica: 1 && 0, que resulta em resultado negativo, ou 0.
Ento voc no pode fazer o concurso.

Operador lgico 'OU' em


linguagem C: ||
Vamos supor que voc quer trabalhar em outro pas, no Canad por
exemplo.

Para isso ser possvel voc deve ser canadense OU ser casado com uma
canadense.
Se voc for canadense, mas no for casado com uma, pode trabalhar? Sim,
pode.
Se voc no Operadores Lgicos E (&&), OU (||) e de Negao (!)
Vimos no artigo passado de nossa apostila de C, uma explicao sobre
valores lgicos true ou false em computao.

Vamos agora entrar mais em detalhes e ver como possvel representar


informaes apenas com true ou false, 1 ou 0.
E bem como o artigo passado, usaremos apenas idias e conceitos, nada de
cdigo por hora.

Operador lgico 'E' em linguagem C: &&


Vamos supor que voc passou em um concurso, o cargo para ser
programador e trabalhar para o governo.
No edital voc leu: necessrio ser brasileiro e ser maior de 18 anos.

Ou seja, voc s pode fazer esse concurso se for brasileiro E TAMBM se


tiver de 18 anos ou mais.
Se for brasileiro mas tiver menos de 18 anos, no pode.
Se tiver mais de 18 anos mas no for brasileiro, tambm no pode.

Ou seja: todas as condies devem ser obedecidas para termos um


resultado positivo (que no caso poder fazer o concurso).

Vamos agora trazer para o nosso mundo da programao em linguagem C.


Esse E, vamos representar por &&

Ento, para fazer o concurso: (ser brasileiro) && (ter 18 anos ou mais)

Vamos supor que voc brasileiro. Vamos representar esse fato como '1',
pois verdade.
Vamos supor que voc tem 18 anos, representaremos isso pelo valor lgico
'1' tambm.

Ento: 1 && 1 resulta em verdade, ou 1.

E se voc for menor?


Nossa expresso fica: 1 && 0, que resulta em resultado negativo, ou 0.
Ento voc no pode fazer o concurso.

Operador lgico 'OU' em linguagem C: ||


Vamos supor que voc quer trabalhar em outro pas, no Canad por
exemplo.
Para isso ser possvel voc deve ser canadense OU ser casado com uma
canadense.

Se voc for canadense, mas no for casado com uma, pode trabalhar? Sim,
pode.
Se voc no for canadense, mas for casado com uma canadense, pode
trabalhar l? Sim, pode.

Pode porque para isso ser possvel (para ser verdade), necessrio ser
canadense OU ser casado com uma.
Preenchendo apenas um dos requisitos, voc est apto e o resultado
positivo.
E se voc for canadense e casado com uma canadense? Ora, bvio que
pode tambm.

Esse OU ser representado em programao pelo smbolo: ||

Ento: "1 || 0" resulta em valor lgico verdadeiro (true, ou 1)


"0 || 1" tambm, assim como "1 || 1" tambm vai resultar em valor lgico
verdadeiro.

Assim, para expresses que possuem a condio OU (||), se uma das


condies for verdadeira, toda a sentena ser.
E para a expresso ser falsa, todas as condies devem ser falsas.

Bem bvio, no?

Operador lgico de negao em linguagem C: !


Agora est bem claro pra voc que as condies e expresses ou so
verdadeiras (true ou 1) ou so falsas (false ou 0).

Quando queremos negar algo, colocamos o smbolo ! antes do que


queremos negar.
Por exemplo, 1 + 1 dois?
A resposta sim, ou '1'. Ou '!0', pois o contrrio de 0 1.

2 + 2 trs? Falso ou 0. Ou '!1', pois o contrrio de 1 0

Operadores Lgicos E (&&), OU (||) e de Negao (!)


Vimos no artigo passado de nossa apostila de C, uma explicao sobre
valores lgicos true ou false em computao.

Vamos agora entrar mais em detalhes e ver como possvel representar


informaes apenas com true ou false, 1 ou 0.
E bem como o artigo passado, usaremos apenas idias e conceitos, nada de
cdigo por hora.

Operador lgico 'E' em linguagem C: &&


Vamos supor que voc passou em um concurso, o cargo para ser
programador e trabalhar para o governo.
No edital voc leu: necessrio ser brasileiro e ser maior de 18 anos.

Ou seja, voc s pode fazer esse concurso se for brasileiro E TAMBM se


tiver de 18 anos ou mais.
Se for brasileiro mas tiver menos de 18 anos, no pode.
Se tiver mais de 18 anos mas no for brasileiro, tambm no pode.

Ou seja: todas as condies devem ser obedecidas para termos um


resultado positivo (que no caso poder fazer o concurso).

Vamos agora trazer para o nosso mundo da programao em linguagem C.


Esse E, vamos representar por &&

Ento, para fazer o concurso: (ser brasileiro) && (ter 18 anos ou mais)
Vamos supor que voc brasileiro. Vamos representar esse fato como '1',
pois verdade.
Vamos supor que voc tem 18 anos, representaremos isso pelo valor lgico
'1' tambm.

Ento: 1 && 1 resulta em verdade, ou 1.

E se voc for menor?


Nossa expresso fica: 1 && 0, que resulta em resultado negativo, ou 0.
Ento voc no pode fazer o concurso.

Operador lgico 'OU' em linguagem C: ||


Vamos supor que voc quer trabalhar em outro pas, no Canad por
exemplo.
Para isso ser possvel voc deve ser canadense OU ser casado com uma
canadense.

Se voc for canadense, mas no for casado com uma, pode trabalhar? Sim,
pode.
Se voc no for canadense, mas for casado com uma canadense, pode
trabalhar l? Sim, pode.

Pode porque para isso ser possvel (para ser verdade), necessrio ser
canadense OU ser casado com uma.
Preenchendo apenas um dos requisitos, voc est apto e o resultado
positivo.
E se voc for canadense e casado com uma canadense? Ora, bvio que
pode tambm.

Esse OU ser representado em programao pelo smbolo: ||

Ento: "1 || 0" resulta em valor lgico verdadeiro (true, ou 1)


"0 || 1" tambm, assim como "1 || 1" tambm vai resultar em valor lgico
verdadeiro.

Assim, para expresses que possuem a condio OU (||), se uma das


condies for verdadeira, toda a sentena ser.
E para a expresso ser falsa, todas as condies devem ser falsas.

Bem bvio, no?

Operador lgico de negao em linguagem C: !


Agora est bem claro pra voc que as condies e expresses ou so
verdadeiras (true ou 1) ou so falsas (false ou 0).

Quando queremos negar algo, colocamos o smbolo ! antes do que


queremos negar.
Por exemplo, 1 + 1 dois?
A resposta sim, ou '1'. Ou '!0', pois o contrrio de 0 1.

2 + 2 trs? Falso ou 0. Ou '!1', pois o contrrio de 1 0

Operadores Lgicos E (&&), OU (||) e de Negao (!)


Vimos no artigo passado de nossa apostila de C, uma explicao sobre
valores lgicos true ou false em computao.

Vamos agora entrar mais em detalhes e ver como possvel representar


informaes apenas com true ou false, 1 ou 0.
E bem como o artigo passado, usaremos apenas idias e conceitos, nada de
cdigo por hora.

Operador lgico 'E' em linguagem C: &&


Vamos supor que voc passou em um concurso, o cargo para ser
programador e trabalhar para o governo.

No edital voc leu: necessrio ser brasileiro e ser maior de 18 anos.

Ou seja, voc s pode fazer esse concurso se for brasileiro E TAMBM se


tiver de 18 anos ou mais.
Se for brasileiro mas tiver menos de 18 anos, no pode.
Se tiver mais de 18 anos mas no for brasileiro, tambm no pode.

Ou seja: todas as condies devem ser obedecidas para termos um


resultado positivo (que no caso poder fazer o concurso).

Vamos agora trazer para o nosso mundo da programao em linguagem C.


Esse E, vamos representar por &&

Ento, para fazer o concurso: (ser brasileiro) && (ter 18 anos ou mais)
Vamos supor que voc brasileiro. Vamos representar esse fato como '1',
pois verdade.
Vamos supor que voc tem 18 anos, representaremos isso pelo valor lgico
'1' tambm.

Ento: 1 && 1 resulta em verdade, ou 1.

E se voc for menor?


Nossa expresso fica: 1 && 0, que resulta em resultado negativo, ou 0.
Ento voc no pode fazer o concurso.

Operador lgico 'OU' em linguagem C: ||


Vamos supor que voc quer trabalhar em outro pas, no Canad por
exemplo.

Para isso ser possvel voc deve ser canadense OU ser casado com uma
canadense.

Se voc for canadense, mas no for casado com uma, pode trabalhar? Sim,
pode.
Se voc no for canadense, mas for casado com uma canadense, pode
trabalhar l? Sim, pode.

Pode porque para isso ser possvel (para ser verdade), necessrio ser
canadense OU ser casado com uma.
Preenchendo apenas um dos requisitos, voc est apto e o resultado
positivo.
E se voc for canadense e casado com uma canadense? Ora, bvio que
pode tambm.

Esse OU ser representado em programao pelo smbolo: ||

Ento: "1 || 0" resulta em valor lgico verdadeiro (true, ou 1)


"0 || 1" tambm, assim como "1 || 1" tambm vai resultar em valor lgico
verdadeiro.

Assim, para expresses que possuem a condio OU (||), se uma das


condies for verdadeira, toda a sentena ser.
E para a expresso ser falsa, todas as condies devem ser falsas.

Bem bvio, no?

Operador lgico de negao em linguagem C: !


Agora est bem claro pra voc que as condies e expresses ou so
verdadeiras (true ou 1) ou so falsas (false ou 0).

Quando queremos negar algo, colocamos o smbolo ! antes do que


queremos negar.
Por exemplo, 1 + 1 dois?
A resposta sim, ou '1'. Ou '!0', pois o contrrio de 0 1.

2 + 2 trs? Falso ou 0. Ou '!1', pois o contrrio de 1 0

Operadores Lgicos E (&&), OU


(||) e de Negao (!)
Vimos no artigo passado de
nossa apostila de C, uma
explicao sobre valores
lgicos true ou false em
computao.
Vamos agora entrar mais em
detalhes e ver como possvel
representar informaes
apenas com true ou false, 1 ou
0.
E bem como o artigo passado,
usaremos apenas idias e
conceitos, nada de cdigo por
hora.
Operador lgico 'E' em
linguagem C: &&

Vamos supor que voc passou


em um concurso, o cargo
para ser programador e
trabalhar para o governo.
No edital voc leu:
necessrio ser brasileiro e ser
maior de 18 anos.
Ou seja, voc s pode fazer
esse concurso se for brasileiro
E TAMBM se tiver de 18 anos
ou mais.
Se for brasileiro mas tiver
menos de 18 anos, no pode.
Se tiver mais de 18 anos mas
no for brasileiro, tambm no
pode.

Ou seja: todas as condies


devem ser obedecidas para
termos um resultado positivo
(que no caso poder fazer o
concurso).
Vamos agora trazer para o
nosso mundo da programao
em linguagem C.
Esse E, vamos representar por
&&
Ento, para fazer o concurso:
(ser brasileiro) && (ter 18 anos
ou mais)
Vamos supor que voc
brasileiro. Vamos representar
esse fato como '1', pois
verdade.

Vamos supor que voc tem 18


anos, representaremos isso
pelo valor lgico '1' tambm.
Ento: 1 && 1 resulta em
verdade, ou 1.
E se voc for menor?
Nossa expresso fica: 1 && 0,
que resulta em resultado
negativo, ou 0. Ento voc no
pode fazer o concurso.
Operador lgico 'OU' em
linguagem C: ||
Vamos supor que voc quer
trabalhar em outro pas, no
Canad por exemplo.

Para isso ser possvel voc


deve ser canadense OU ser
casado com uma canadense.
Se voc for canadense, mas
no for casado com uma, pode
trabalhar? Sim, pode.
Se voc no for canadense,
mas for casado com uma
canadense, pode trabalhar l?
Sim, pode.
Pode porque para isso ser
possvel (para ser verdade),
necessrio ser canadense OU
ser casado com uma.
Preenchendo apenas um dos
requisitos, voc est apto e o
resultado positivo.

E se voc for canadense e


casado com uma canadense?
Ora, bvio que pode
tambm.
Esse OU ser representado em
programao pelo smbolo: ||
Ento: "1 || 0" resulta em valor
lgico verdadeiro (true, ou 1)
"0 || 1" tambm, assim como
"1 || 1" tambm vai resultar
em valor lgico verdadeiro.
Assim, para expresses que
possuem a condio OU (||), se
uma das condies for
verdadeira, toda a sentena
ser.

E para a expresso ser falsa,


todas as condies devem ser
falsas.
Bem bvio, no?

Operador lgico de negao


em linguagem C: !
Agora est bem claro pra voc
que as condies e expresses
ou so verdadeiras (true ou 1)
ou so falsas (false ou 0).
Quando queremos negar algo,
colocamos o smbolo ! antes
do que queremos negar.

Por exemplo, 1 + 1 dois?


A resposta sim, ou '1'. Ou '!
0', pois o contrrio de 0 1.
2 + 2 trs? Falso ou 0. Ou '!
1', pois o contrrio de 1 0