Você está na página 1de 64

Atualizao Tcnica e Pedaggica de Professores no componente

de Lgica de Programao com C# (console)

Semana 1
Ambiente Microsoft Visual C# 2010 Express
Prof. Tiago Jesus de Souza

Linguagem de Programao C#
C Sharp, uma linguagem de programao, da Plataforma .NET, derivada de C/C++,
simples, moderna e orientada objetos.
Possui o poder do C/C++ aliado com a alta produtividade do Visual Basic.
distribudo juntamente com Microsoft Visual Studio.NET, e tem acesso a toda a
plataforma do Next Generation Windows Services (NGWS), que incluem uma poderosa
biblioteca de classes e um mecanismo de execuo comum.
a linguagem nativa para .NET Common Language Runtime (CLR), mecanismo de
execuo da plataforma .NET. Isso possibilita a convivncia com vrias outras linguagens
especificadas pela Common Language Subset (CLS).

Linguagem de Programao C#
Para o desenvolvimento deste material, estaremos utilizando a verso Microsoft Visual C#
2010 Express, que gratuita para estudo e atender aos nossos propsitos.
A Linguagem C# sensitive case, ou seja, faz a diferena de letras minsculas com
maisculas.
Por exemplo: prova diferente de Prova, que diferente de PrOVa, e assim por diante.
Link para download do programa Microsoft Visual C# 2010 Express:
http://www.microsoft.com/visualstudio/ptb/downloads#d-2010-express
Aps o download, instale o programa para dar continuidade na aula.

Tela Inicial do Microsoft Visual C# 2010 Express


Logo aps a instalao do programa, ao inicia-lo, ser exibida a seguinte tela:

Criando um projeto
Para iniciarmos o desenvolvimento temos que criar um novo projeto. Para isso, clique em
File New Project.

Criando um projeto
Logo aps selecionar a opo de novo projeto, ser exibida uma janela para escolher o
tipo de projeto que deseja desenvolver.
Para nossos estudos neste curso, estaremos utilizando o tipo de projeto para aplicao
console. Para isso basta selecionar Console Application, colocar um nome para o projeto
Aula1_Exemplo1 (no lugar de ConsoleApplication1 na parte inferior da janela) e clicar em OK.
Estaremos adotando este padro aos nomes dos projetos, para facilitar a identificao dos
mesmos durante o curso.

Ambiente para Desenvolvimento


O ambiente ento estar preparado para o desenvolvimento do projeto, onde teremos na
regio central da tela a rea de desenvolvimento (1), ao lado direito na tela o Solution
Explorer (2) e Properties (3), e na regio inferior Error List e Output (4) .

Ambiente para Desenvolvimento


Em Solution Explorer mostrada a estrutura de pastas e arquivos do projeto, sendo que o
arquivo Program.cs ser o arquivo que estaremos editando para o desenvolvimento do
nosso primeiro exemplo.
Em Properties possvel visualizar e alterar as configuraes do projeto, como por
exemplo, o nome do projeto, framework, tipo de sada e algumas outras propriedades.
Em Error List ser o local onde aparecero os erros de compilao que vierem a ocorrer
durante o desenvolvimento dos projetos. O processo de compilao tem a funo de
verificar se o cdigo fonte desenvolvido, possui algum erro. Caso tenha algum erro, o
mesmo ser listado neste espao e consequentemente facilitando assim o entendimento
do erro para que possamos soluciona-lo.

Ambiente para Desenvolvimento


Em Output ser um dos locais possveis para sada de dados n a execuo do programa, ou
seja, todos os comandos que utilizarmos para exibir informaes para os usurios podem
ser exibidos neste local. O padro que estaremos utilizando como sada de dados uma
janela de Console. Para alterar a sada de dados, temos que configurar as propriedades do
projeto.
Na regio de desenvolvimento do cdigo fonte, quando criamos um projeto com um tipo
especfico, o software j trs algumas linhas de cdigo j preenchidas. Este cdigo a
estrutura padro bsica para o desenvolvimento de um projeto deste tipo.

Estrutura bsica padro


using serve para carregar as bibliotecas do sistema,
ou seja, muitas funes e comandos j esto
prontas para serem utilizadas, portanto temos que
carreg-las no projeto para que possamos usufruir.
namespace o nome dado ao ambiente de
desenvolvimento do projeto. Em um projeto
podemos criar vrios arquivos e com isso para cada arquivo criado, utilizaremos o mesmo
namespace, facilitando assim a organizao do projeto.
class diretiva utilizada em linguagem orientada a objetos para identificar o tipo de objeto
a ser modelado e o arquivo dever ter sempre o mesmo nome da classe.

Estrutura bsica padro


static void main (string[] args) o cabealho do mtodo principal do projeto, ou seja, no
momento da execuo do projeto, ser executada a sequencia lgica de comandos que
estiverem escritas a partir do incio do desenvolvimento deste mtodo. O nome deste
mtodo main.
As chaves {} servem para delimitar um bloco de instrues, o incio e trmino de
mtodos, classes, namespaces ou comandos.
Iremos observar tambm que o ponto-e-vrgula ; fundamental para indicar o final de
muitas instrues (comandos). Poderamos escrever um programa com vrias instrues
em apenas uma linha, visto que o ponto-e-vrgula faria as delimitaes entre as
instrues. Mas para um bom entendimento e organizao do cdigo fonte, geralmente
usada uma instruo por linha.

Primeiro exemplo Hello World


Para nosso primeiro exemplo, estaremos desenvolvendo um programa que exiba na tela
uma mensagem clssica para todos que iniciam um curso de programao, o famoso
Hello World!. E para isso estaremos acrescentando duas linhas de cdigo dentro do
mtodo principal (main). Dentro significa estar entre as chaves do mtodo main.
Console.Write("Hello World!");
Console.ReadKey();
Depois de incluir estas duas linhas, temos que verificar se o cdigo digitado est correto, e
estando correto, executar o programa. Para isso temos que clicar em Debug Start
Debugging ou pressionar a tecla F5 ou ainda clicar no smbolo indicado abaixo, na barra
de ferramentas.

Primeiro exemplo Hello World Tela


Logo aps digitar as instrues indicadas anteriormente, o cdigo fonte fica assim:

Primeiro exemplo Hello World Resultado


Logo aparecer uma janela de console, com a mensagem Hello World!.

Observe que no ttulo desta janela possui um endereo um arquivo executvel gerado
aps a execuo, ou seja, foi criado o arquivo executvel do projeto.
V at a pasta indicada e d um clique no arquivo Aula1_Exemplo1.exe.
Nota: O arquivo executvel o produto (software) que ser disponibilizado para os
usurios que utilizaro o programa, e o cdigo fonte no poder ser disponibilizado.

Primeiro exemplo Hello World Comandos


Duas instrues foram utilizadas para que obtivssemos este resultado, que foram:
Console.Write(Hello World!) ;
Responsvel por exibir uma mensagem da tela.
Console.ReadKey() ;
Responsvel por pausar a execuo do programa.
Muitas outras instrues sero vistas durante o curso, mas no todas, pois como ser
percebido, existem muitas bibliotecas com muitos recursos prontos para serem utilizados.

Salvando o projeto pela primeira vez


Para salvar o projeto para clicar em File Save All
Na sequencia ir aparecer uma janela, com alguns
campos para serem preenchidos (Nome do Projeto,
Local onde deseja salvar e Nome para a Soluo).
Feito isso basta clicar em Save.

Erros em tempo de Compilao


Caso a sintaxe (regra) de alguma instruo for escrita errada, na prpria linha de comando
ir aparecer um sublinhado em vermelho, alertando que algo no est escrito
corretamente, a basta analisar.
Caso no perceba que tm algo de errado, e tentar executar o programa, o compilador
acusar um erro. E s conseguir execut-lo depois que fizer as correes necessrias.
Por exemplo, se esquecer o ponto-e-vrgula do final da instruo, ou escrever o comando
em letras minsculas, ou esquecer de colocar aspas para exibir o texto, entre outras mais
que acontecero durante o curso.
Console.Write (Hello world!)
console.write (Hello world!);
console.write (Hello world!);

Erros de compilao
Ao compilar/executar este exemplo (F5), aparecer
uma janela perguntando se quer continuar e
executar a verso anterior antes da modificao
(opo Sim), ou se no quer executar e verificar o
que est de errado no cdigo atual (opo No).
Vamos ento clicar sempre em No, para que
possamos analisar os erros e corrigi-los.
Neste exemplo, quando compilar o programa, os
erros encontrados sero listados. Ento, basta
realizar as correes sugeridas e compilar/executar
novamente.

Erros em tempo de Execuo


Este tipo de erro gerado quando por exemplo, o usurio est utilizando o programa
(executvel) e ele digita um letra em um campo onde era para ser digitado um nmero.
Neste caso, a execuo do programa ser encerrada e aparecer uma informao com o
possvel erro ocorrido. Sendo assim, como o usurio no tem acesso ao cdigo fonte, ter
que solicitar ao programador que analise este erro e solucione o problema.
Na Linguagem C#, existem mecanismos para tratamento de erros em tempo de execuo.
Este assunto iremos tratar posteriormente.

Tipos de Dados
Antes de continuarmos com o desenvolvimento de projetos, precisamos saber e entender
algumas particularidades da estrutura da linguagem C#, como os tipos de dados, comando
de atribuio, operadores aritmticos, operadores relacionais e operadores lgicos.
Toda linguagem de programao possui seus tipos de dados primitivos, ou seja, so os
dados suportados diretamente pelo compilador. Esses dados possuem palavras chaves
para facilitar sua utilizao durante a implementao de um sistema.
Por exemplo, a palavra chave string mapeia diretamente o tipo System.String. Inclusive
saber/conhecer estes tipos, pode auxiliar no desempenho do sistema a ser desenvolvido.

Tipos Primitivos em Linguagem C#


Tipo
bool
byte
char

double
float
int

Descrio
Booleano
Inteiro de 8 bits com sinal
Caracter Unicode de 16 bits
Inteiro de 96 bits com sinal com 28-29 dgitos
significativos
Flutuante IEEE 64 bits com 15-16 dgitos significativos
Flutuante IEEE 32 bits com 7 dgitos significativos
Inteiro de 32 bits com sinal

long

Inteiro de 64 bits com sinal

object
sbyte
short
string
uint
ulong
ushort

Classe base
Inteiro de 8 bits sem sinal
Inteiro de 16 bits com sinal
String de caracteres Unicode
Inteiro de 32 bits sem sinal
Inteiro de 64 bits sem sinal
Inteiro de 16 bits sem sinal

decimal

Faixa de dados
True ou false
-127 a 128
U+0000 a U+ffff
1,0 x 10-28 a 7,9 x 1028

5,0 x 10-324 a 1,7 x 10308


1,5 x 10-45 a 3,4 x 1038
-2.147.483.648 a 2.147.438.647
-9.223.372.036.854.775.808 a
9.223.372.036.854.775.807
0 a 255
-32.768 a 32.767

0 a 4.294.967.295
0 a 18.446.744.073.709.551.615
0 a 65.535

Declarao de variveis
Para armazenar informaes em um programa, necessrio reservar espao na
memria. E para isso temos que declarar variveis, para que estas possam receber
informaes e assim, estas poderem ser utilizadas durante a execuo do programa.
Como o prprio nome j diz, uma varivel pode ter seu contedo alterado durante a
execuo de um programa, ou seja, ela pode iniciar valendo 5 e terminar valendo 322.
Exemplos de declarao de variveis:
int A, B, C;
//Declarao de trs variveis do tipo int (inteiro)
double valor,
//Declarao de uma varivel do tipo double (real)
string nome;
//Declarao de uma varivel do tipo string (sequencia de caracteres)

Definio de nomes para variveis


Visando facilitar o entendimento do cdigo fonte desenvolvido, importante dar
nome para as variveis, de acordo com o papel que ela ir exercer no programa.
Por exemplo, no caso do programa precisar armazenar vrios dados de um cadastro de
cliente, e dentre elas est o numero do Cadastro de Pessoa Fsica. Para criar uma
relao que faa sentido para quem est desenvolvendo o cdigo fonte, uma sugesto
seria criar uma varivel chamada CPF, ao invs de criar uma varivel chamada N,
NUM, X ou outra qualquer que no faa o mnimo sentido para com seu objetivo.
Lembrando tambm que variveis no podem ter seus nomes com acentuao,
caracteres especiais (exceto _), espao em branco e iniciar com nmeros.
Aproveitando, o exemplo anterior, poderia ser criada a varivel Cadastro de Pessoa
Fsica em vez da varivel CPF? (Resposta: No. Pois possui espaos em branco)

Comando de Atribuio
Para armazenar alguma informao em uma varivel, usamos o smbolo =,
efetuando assim a atribuio de um valor em uma varivel.
Exemplos de atribuio de dados em variveis:
A = 10;

//Est sendo atribudo o nmero 10 na varivel A

valor = 5.5;

//Est sendo atribudo o valor 5.5 na varivel valor

nome = Tiago; //Est sendo atribudo Tiago na varivel nome


Observem que quando trabalhamos com strings o contedo a ser armazenado deve
estar delimitado entre aspas.

Operadores Aritmticos
Para a realizao de operaes envolvendo clculos matemticos, os operadores
utilizados na Linguagem C# so:
Operador
+
*
/
%

Operao
Adio
Subtrao
Multiplicao
Diviso
Resto da Diviso

Exemplos:
A = 10 + 2;
B = A 5;
C = 587 * A + B;
valor = 5.5 / 2;
C = 34 % 3;

Para exemplificar estes operadores aritmticos, vamos testar usando exemplos


prticos e analisar os resultados apresentados.

Exemplo 2
Para este exemplo vamos criar um novo projeto com o nome Aula1_Exemplo2 e
digitar o cdigo a seguir:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Aula1_Exemplo2
{ //incio namespace
class Program
{
//incio class

Exemplo 2 - continuao
static void Main(string[] args)
{
//incio Main
//Declarao de variveis
int a, b, total;
//Atribuio de valores
a = 20;
b = 10;
/*Concatenao de valores a serem exibidos na tela
Calculo da operao sendo realizado entre parnteses */
Console.WriteLine(a + " + " + b + " = " + (a + b));

Exemplo 2 - continuao
//Resultado do clculo da operao sendo atribudo em uma varivel
total = a - b;
Console.WriteLine(a + " - " + b + " = " + total);
Console.WriteLine(a + " * " + b + " = " + (a * b));
Console.WriteLine(a + " / " + b + " = " + (a / b));
Console.WriteLine(a + " % " + b + " = " + (a % b));
Console.ReadKey(); //Instuo utilizada para dar uma pausa para visualizao
} //fim Main
} //fim class
} //fim namespace

Exemplo 2 Resultado
O resultado gerado na execuo do cdigo anterior mostrado abaixo:

Observem que todo o contedo que est escrito em verde no cdigo fonte no foi
mostrado na tela. Isto significa que podemos usar comentrios durante o
desenvolvimento do cdigo fonte. Como visto podemos usar das seguintes maneiras:
// - para comentar o que estiver escrito a direita na mesma linha
/* ... */ - para comentar um trecho de cdigo

Console.WriteLine()
Responsvel por exibir uma mensagem da tela e logo em seguida pular uma linha.
Observem que no primeiro exemplo o cursor ficou piscando ao fim da mensagem, na
mesma linha. No exemplo 2 o cursor ficou piscando na linha abaixo da ltima
mensagem.
Nestes mtodos para exibio de dados na tela, notem que o que est entre aspas o
que exatamente saiu na tela, e o que est fora das aspas, foi exibido o valor que est
armazenado na varivel. Para compreender melhor a sintaxe desta linha de comando:

Entendendo melhor a instruo


Nesta linha de comando, vamos entender cada um dos itens:

Classe: um tipo de objeto que contm vrios mtodos (funes) prontos para serem
utilizados, ou seja, que j fazem parte do pacote de bibliotecas da Linguagem C#.
Toda linha de comando que estiver utilizando a classe Console, significa que estar
executando uma ao sob a janela de console (tela preta) onde gerado o resultado
da execuo do programa.

Entendendo melhor a instruo


Mtodos: So funes que pertencem as classes, ou seja, para exibir dados na tela
podemos utilizar os mtodos Write() ou WriteLine(), para dar uma pausa no programa
utilizamos o ReadKey(), para capturar um texto digitado pelo usurio e armazenar em
uma varivel utilizamos ReadLine() e assim por diante. Cada classe possui um conjunto
de mtodos pr-definidos.
Varivel: Como j visto anteriormente nesta mesma aula, so nomes que so dados
aos espaos de memria para que sejam armazenados valores, que posteriormente
possam ser utilizados durante a execuo o programa. No caso as variveis a e b
possuem valores do tipo inteiro.

Entendendo melhor a instruo


Concatenao: O smbolo de adio + usado para concatenar, ou seja, montar uma
mensagem para que seja exibida uma mensagem organizada na tela. Podemos definir
como juntar texto com variveis para que seja exibida a mensagem na tela da forma
desejada.
Operao: Neste caso est realmente sendo realizada uma operao de adio (soma)
de duas variveis. O que difere da concatenao so exatamente os parnteses que faz
o compilador interpretar que representa uma operao aritmtica.

Outra forma de exibio


Uma outra forma de exibir dados da tela utilizando os mesmos comandos
(Console.Write e Console.WriteLine) a de formatao de sada. Como mostrado no
exemplo a seguir:

Neste caso, o valor que est armazenado na varivel a ser exibido no lugar da {0}, o
valor armazenado na varivel b ser exibido no lugar da {1}, e o valor gerado pelo
resultado da operao ser exibido no lugar da {2}.
Notem que o resultado da diviso um nmero real, e para que sejam exibidas duas
casas decimais deste resultado necessrio formatar a sada de dados, e umas das
formas usando {2:N2}, ou se quiser trs casas decimais {2:N3}.

Precedncia de Operadores
Operaes dentro dos parnteses so sempre executadas primeiro, como nas
operaes matemticas.
Em C#, operadores multiplicativos (*, /, %) tem precedncia sobre os aditivos (+, -).
Observem a ordem de precedncia das seguintes expresses:
Exemplo 1:
Exemplo 2:
2+3*4
(2 + 3) * 4
2+3*4
(2 + 3) * 4
2 + 12
5*4
14
20
Perceba que a ordem de precedncia altera o valor do resultado, por isso devemos ter
ateno com a precedncia.

Constantes
So nomes dados a valores que no podero ter seu contedo alterado durante a
execuo de um programa, ou seja, diferente das variveis as constantes mantero o
mesmo valor do incio ao fim da execuo.
Para a definio de constantes utilizaremos a sintaxe:
const <tipo_de_dado> <nome_da_constante> = <valor>;
Exemplos de definio de constantes:
const int ano = 2013;
const string linguagem = C Sharp;
const double pi = 3.14159265358979323846264338327950;
Obs.: Nos prximos exemplos ser mostrado apenas o contedo do Main, mas continue criando um novo
projeto para cada exemplo, conforme j demonstrado.

Exemplo 3: Constante e Formatao

Exemplo 3: Resultado

Para o clculo da exponenciao, a Linguagem C# possui uma classe chamada Math


que fornece vrias funes matemticas j prontas para serem utilizadas.
A seguir sero listadas algumas funes fornecidas por esta classe.

Bliblioteca Math
Algumas funes matemticas da classe Math:
Funo

Finalidade

Exemplo

Abs(x)

Valor absoluto de x

Abs(3.5) = 3,5;
Abs(-3.5) = 3,5;

Acos(x)

Arco cosseno de x

Acos (0.3) = 1,26...

Asin(x)

Arco seno de x

Asin(0.6) = 0,64...

Atan(x)

Arco tangente de x

Atan(0.5) = 0,46...

Ceiling(x)

Arredonda x para cima

Ceiling(0.1) = 1;
Ceiling(-0.1) = 0;

Cos(x)

Cosseno de x

Cos(0.5) = 0,87...

Exp(x)

Exponencial (e elevado na x)

Exp(2.0) = 7,38...

Floor(x)

Arredonda x para baixo

Floor(0.9) = 0;
Floor(-0.9) = -1;

Log(x)

Logaritmo de x na base natural e

Log(2.71) = 0,99...

Bliblioteca Math - continuao


Funo

Finalidade

Exemplo

Max(x,y)

Maior valor entre dois nmeros

Max(1.5,1.7) = 1,7;
Max(-0.5,-0.7) = -0,5;

Min(x)

Menor valor entre dois nmeros

Min(1.5,1.7) = 1,5;
Min(-0.5,-0.7) = -0,7;

PI

Valor de pi

PI = 3,14...

Pow(x,y)

Valor de x elevado na y

Pow(2,4) = 16

Round(x,y)

Arredonda x para y casas decimais

Round(5.98765,3) = 5,988

Sin(x)

Seno de x

Sin(2) = 0,9...

Sqrt(x)

Raiz quadrada de x

Sqrt(81) = 9

Tan(x)

Tangente de x

Tan(0.5) = 0,54...

Exemplo 4: Tratando Strings


O tipo string possui alguns mtodos interessantes e bem particulares. No exemplo 4 a seguir
sero mostrados alguns mtodos muito utilizados.

Exemplo 4 Resultado

Mtodos usados:
nome.Length retorna a quantidade de caracteres armazenadas na varivel
nome.ToLower() converte o contedo da string em caracteres minsculos
nome.ToUpper() converte o contedo da string em caracteres maisculos
nome.Equals(sobrenome) realiza a comparao entre duas strings

Entrada de Dados
At o momento nos exemplos apresentados, no houve nenhuma interao com o
usurio. Sendo que os valores foram definidos em tempo de programao, ou seja, no
desenvolvimento do cdigo fonte.
Agora ser apresentada uma maneira de fazer com que o usurio digite a informao
e esta informao fique armazenada em uma varivel. E para isso iremos utilizar o
mtodo Console.ReadLine().
Este mtodo responsvel por aguardar o usurio digitar uma informao e
pressionar <enter>. Fazendo isso, a informao digitada pelo usurio ser armazenada
em uma varivel. Exemplo:
string <varivel> = Console.ReadLine();
Esta informao sempre ser capturada no formato de string.

Exemplo 5 - Entrada de Dados

Podemos usar o \n para pular linha, ou seja, neste exemplo ir pular uma linha antes
e outra depois que for exibida a mensagem ***Informaes digitadas***.

Exemplo 5 - Resultado

Neste exemplo o nome digitado Jos foi armazenado na varivel nome e a cidade
informada Araraquara foi armazenada na varivel cidade. Ambas variveis so do
tipo string.
Na sequencia foram exibidas as informaes que foram digitadas.

Armazenar outros tipos de dados


Conforme j vimos anteriormente, toda a informao capturada pelo
Console.ReadLine() reconhecida como uma string. Portanto, para que a informao
seja armazenada em uma varivel de outro tipo (diferente de string), temos que
aplicar a converso de tipo adequada a cada necessidade.
Exemplo de converso:
int N = int.Parse(Console.ReadLine()); ou int n = Convert.ToInt32(Console.ReadLine());
O Console.ReadLine() ser responsvel por capturar a informao que o usurio
digitar. Na sequencia esta informao ser convertida para inteiro pelo mtodo
int.Parse() ou pelo mtodo Convert.ToInt32() . E por fim ser armazenada na varivel
N que do tipo inteiro.

Mais alguns exemplos de converses


double V = double.Parse(Console.ReadLine()); //Converso de string para double
ou double V = Convert.ToDouble(Console.ReadLine());
bool R = bool.Parse(Console.ReadLine()); //Converso de string para boolean
ou bool R = Convert.ToBoolean(Console.ReadLine());
char L = char.Parse(Console.ReadLine());
//Converso de string para char
ou char L = Convert.ToChar(Console.ReadLine());
Existem ainda outros mtodos para converso para outros tipos de dados, veremos
durante o curso, de acordo com as necessidades.

Exemplo 6 Converso de Tipos de Dados

Neste exemplo a varivel nome do tipo string e por isso no necessita de converso.
J para as demais variveis, devemos aplicar a converso, conforme demonstrado.

Exemplo 6 - Resultado

Logo aps o usurio digitar as informaes , ser exibida a mensagem de acordo com
a formatao pr-definida.
Nota: Quando trabalhamos com nmeros reais, devemos usar a vrgula , para
identificar as casas decimais.

Exemplo 7 Adio de dois nmeros inteiros


Neste exemplo, o usurio dever digitar dois
nmeros inteiros, na sequencia ser realizada a
adio dos nmeros digitados e o resultado ser
armazenado na varivel c e por fim ser exibido
o resultado da operao.

Resultado

Operadores Relacionais
Em programao, se suma importncia o uso destes operadores, tendo em vista que
a maioria dos problemas computacionais envolve comparaes entre valores.
Como so operadores que realizaro testes comparativos entre valores, o resultado do
uso destes operadores ser sempre um valor lgico, verdadeiro (true) ou falso (false).
Segue tabela com os operadores relacionais usados na linguagem C# e suas aes:
Operador
>
>=
<
<=
==
!=

Ao
Maior do que
Maior ou igual a
Menor do que
Menor ou igual a
Igual a
Diferente de

Exemplo 8 - Operadores Relacionais


Neste exemplo, o usurio dever digitar dois nmeros inteiros e ser exibido o
resultado da relao entre estes dois nmeros com cada operador relacional.

Exemplo 8 Resultado

Observem que as respostas so apresentadas como valores lgicos (boolean).


Estes operadores sero muito utilizados em trechos do programa, para tomadas de
decises.

Operadores Lgicos
Os operadores lgicos so usados para relacionar expresses e a partir destas
comparaes, os resultados obtidos sero tambm de um tipo lgico (boolean).
So usados somente em expresses lgicas, e so descritos na tabela a seguir:
Operador
&&
||
!

Ao
AND (E)
OR (OU)
NOT (NO)

O operador lgico ! (NOT) tm a finalidade de inverter o valor lgico, ou seja, se temos


um valor lgico Falso, aplicando o operador resultar em Verdadeiro, e vice-versa.

Operadores Lgicos Tabela Verdade


Para auxiliar no entendimento, a seguir mostrado o resultado da operao entre
valores lgicos para cada operador lgico.
p
falso
falso
verdadeiro
verdadeiro

q
falso
verdadeiro
falso
verdadeiro

Exemplo 1: 72 > 30 && 32 <= 10


Verdadeiro &&
Falso

Falso

p && q
falso
falso
falso
verdadeiro

p || q
falso
verdadeiro
verdadeiro
verdadeiro

Exemplo 2: 9 == 3 || 10 <= 10
Falso

|| Verdadeiro
Verdadeiro

Exemplo 9 Operadores Lgicos


Neste exemplo, o usurio deve digitar dois valores lgicos, e na sequncia ser exibido
o resultado de cada operador lgico.

Exemplo 9 Resultado

A utilizao destes operadores pode reduzir consideravelmente o nmero de linhas do


cdigo fonte de um programa, evitando fazer vrias comparaes em linhas de
instrues diferentes. Veremos durante o curso, outras aplicaes utilizando estes
operadores.

Operadores Ternrios
composto por trs operandos (expresses/valores) separados pelos sinais ? e :
Tm o objetivo de atribuir o valor a uma varivel de acordo com o resultado de um
teste lgico. Veja a sintaxe dele abaixo:
teste lgico ? valor se verdadeiro : valor se falso;
Onde:
- teste lgico qualquer valor ou expresso, que pode ser verdadeiro ou falso.
- valor se verdadeiro atribudo o valor true;
- valor se falso atribudo o valor false.

Exemplo 10 - Operadores Ternrios


Neste exemplo, foi realizado o teste para
saber se o primeiro nmero digitado
maior que o segundo nmero digitado,
sendo que a resposta ser o valor da
varivel verdade ou da varivel falso.

Resultado

Outros Operadores de Atribuio


So formas usadas para otimizar uma linha de instruo, que usa o valor da prpria
varivel (antes o operador) para realizar o clculo e atribuir nela mesma o novo
resultado.
Operador
=
+=
-=
*=
/=
%=

Descrio
Atribuio Simples (j visto)
Atribuio Aditiva
Atribuio Subtrativa
Atribuio Multiplicativa
Atribuio de Diviso
Atribuio de Resto da Diviso

Exemplo 11 - Operadores de Atribuio

Resultado
O mesmo valido para
os outros operadores.

Incremento e Decremento
Incrementar um nmero significa adicionar 1 ao valor atual.
Decrementar um nmero significa subtrair 1 de um nmero atual.
Operador Descrio
++
Incremento
-Decremento
Exemplo 1:
int X = 1;
X++;

//Atribuindo o valor 1 na varivel X


//Incrementando 1 na mesma varivel, que passa a valer 2

Exemplo 2:
int X = 8;
X--;

//Atribuindo o valor 8 na varivel X


//Decrementando 1 na mesma varivel, que passa a valer 7

Prefixo e Sufixo
Tanto o operador de incremento quanto o de decremento tem duas formas de serem
aplicados: prefixo e sufixo.
Prefixo: O operador est antes do nome da varivel. Ex: int X = ++Y;
Quando estamos atribuindo um valor a uma varivel usando prefixo, significa que
primeiro deve ser feito o incremento na varivel Y e depois atribudo o novo valor na
varivel destino, que no exemplo a varivel X.
Sufixo: O operador est depois do nome da varivel. Ex: int X = Y++;
No caso de usarmos o sufixo, primeiro o valor de Y seria passado para a varivel X, e
somente depois disso que haveria o incremento em Y.

Bibliografia

Manzano, Jos Augusto N. G., Estudo Dirigido de Microsoft Visual C# 2010 Express.
So Paulo, SP, Editora rica, 2010.

MSDN, Microsoft. Guia de Programao C#. Disponvel:


<http://msdn.microsoft.com/pt-br/library/67ef8sbd(v=vs.80).aspx>. Acesso em 31
jan 2013

Dantas, Cleber. Operadores em C Sharp. Disponvel:


<http://www.linhadecodigo.com.br/artigo/1007/serie-aprenda-csharp-operadoresem-csharp.aspx#ixzz2JW53NQkC>. Acesso em 31 jan 2013.

Balbo, Wellington. Estrutura da Linguagem e Operadores em C Sharp. Disponvel:


<http://www.devmedia.com.br/relacionais-logicos-e-ternario-operadores-do-cestrutura-da-linguagem-parte-3/18875>. Acesso em 31 jan 2013