Escolar Documentos
Profissional Documentos
Cultura Documentos
Ipccea Cap Vi PDF
Ipccea Cap Vi PDF
// bloco de implementao C#
{
< declarao de variveis > ( estrutura de dados )
< comandos > ( algoritmo )
}
Pgina
Declarao de variveis
C# uma linguagem classificada como fortemente tipada. Esta caracterstica significa
que toda varivel declarada em C# deve estar associada a um tipo.
Um varivel C# tem seu escopo limitado ao bloco em que foi declarada. Esta
caracterstica de escopo diz respeito a sua visibilidade (alcance), isto ; uma varivel
somente pode ser utilizada dentro do bloco em que a varivel foi declarada.
Podemos dizer que uma varivel um espao alocado na memria RAM para ser
utilizada por um ou mais processos que necessitam de armazenar ou manipular
alguma informao. Ou ainda, variveis representam locais de armazenamento.
Essas variveis so reconhecidas por um nome (identificador) que lhe atribudo,
declarada da seguinte forma:
Ao ser declaradas, uma varivel tem um tipo associado a ela que determinar que
valores podem ser armazenados e manipulados. O contedo de uma varivel pode
mudar no decorrer do programa.
Pode-se atribuir qualquer nome a uma varivel, observadas restries como:
O nome deve conter letras, nmeros, ou caracteres de sublinhado ( _ );
Este nome deve conter no mximo 255 caracteres.
Como definido no podemos atribuir qualquer valor a uma varivel, sem antes
defini-la.
Veja abaixo a sintaxe para declarao de variveis em C# e VB.NET:
Se estas variveis forem declaradas dentro de um procedimento ou bloco,
podero ser acessveis apenas dentro deste procedimento ou bloco.
Na figura 3.1, o programa feito em C# tem um procedimento chamado de
TestaVariavel( ), onde declarado uma varivel com o nome de VarEscreve.
INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO
Pgina
Pgina
End If
Next K
End Sub
End Class
Curso de Introduo a Plataforma .Net FrameWork SDK
18
Exemplos:
byte VarIdade = 25;
INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO
Pgina
19
Exemplos:
bool VarDesativado = false;
bool VarCondicao = true;
Caracteres (por valor)
Este tipo armazenado em 16 bits, representa um caractere de uma string.
Essas variveis so armazenadas no padro Unicode.
Tipo Descrio
char Um nico caractere Unicode de 16 bits.
Exemplos:
Char VarChar = a;
Representa um caractere literal.
Char VarChar = \x0025;
Representa um caractere hexadecimal.
Char VarChar = \u0025;
Representa um caractere Unicode.
Char VarChar = (char)25;
Retorna o caractere correspondente na Tabela ASCII.
Figura 3.1.2 - neste exemplo retornado o valor correspondente ao caractere 25
da tabela ASCII.
using System;
public class CharTeste
{
public static void Main()
{
char VarTeste = (char)25;
Console.WriteLine(VarTeste);
}
}
Curso de Introduo a Plataforma .Net FrameWork SDK
20
Pgina
Tipo Descrio
double
Ponto flutuante binrio de 8 bytes ( 1.5 x 10 -45 a 1.7 x 10308 )
Este tipo tem uma preciso de 15 casas decimais.
float
Ponto flutuante binrio de 4 bytes ( 1.5 x 10 -45 a 3.4 x 1038 )
Este tipo tem uma preciso de 7 casas decimais.
As operaes com este tipo no geram erros, mas h alguns ressaltos que
devemos saber:
Se o valor retornado para a varivel conter um nmero muito
pequeno, este valor torna-se zero.
Uma diviso por zero no causa um erro, mas produzido um valor
infinito.
Operaes de ponto flutuante devolvem NaN (Not a Number) para
sinalizar que aquele resultado da operao indefinido. Portanto se um
dos operadores for NaN o resultado retornado ser NaN.
Exemplos:
float VarIndice = 3.1356F;
double VarCorrecao = 5.12D;
Decimal (por valor)
O tipo decimal representa com mais preciso nmeros no inteiros e com um
valor muito alto.
Tipo Descrio
decimal
Ponto flutuante decimal de 128 bytes ( 1.5 x 10 -45 a 1.7 x 10308 )
Este tipo tem uma preciso de 28 casas decimais.
Exemplos:
decimal VarIndice = 560.5m;
decimal VarCorrecao = 545.2m;
Curso de Introduo a Plataforma .Net FrameWork SDK
21
Exemplos:
string VarNome = Claudio Junior;
string VarEmail = claudiojunior@estadao.com.br;
string VarConcatenar = VarNome + VarEMail;
As strings so compostas por caracteres e podem conter literais caracteres.
Veja a representao dos literais strings:
Tipo Descrio
INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO
Pgina
\ Apstrofo
\ Aspas
\\ Barra invertida
\0 Zero binrio ou nulo
\a Alerta
\b Retrocesso
\f Avano de pgina
\n Salto de linha
\r Retorno de carro
\t Tabulao horizontal
\v Tabulao vertical
\uNNNN NNNN o cdigo em hexadecimal
22
Exemplos:
Object VarNome = Rubens Barrichello;
Este objeto recebe o valor de uma string.
Object VarIdade = 29;
Este objeto recebe o valor de um numero;
Object VarAtivar = true;
Este objeto recebe um valor lgico.
Converso de Valores
Converter um tipo de dado em nmero ou em literal comum em situaes de
programao. Quando esta aplicao for destinada a Web com intervenes de
internautas, esse recurso utilizado com mais freqncia ainda. comum o
internauta testar a aplicao para ter certeza que o desenvolvedor se preocupou
com as devidas converses de valores.
Devemos considerar alguns aspectos para a converso de nmeros:
Como existem diversos tipos de nmeros, inteiros, ponto flutuante ou
INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO
Pgina
23
Caso precise forar uma converso mesmo que haja perda de informaes, a
linguagem disponibiliza um operador com este recurso.
Exemplos:
int VarValor = (int)8544555L;
Neste caso a varivel inteira vai receber o quanto poder
suportar do tipo long.
long VarValor = (long)29.145;
Neste caso a varivel inteira do tipo long suportar o
quanto for possvel do nmero no inteiro.
Em alguns casos os tipos de converso no precisam ser especificados pelo
desenvolvedor, essa converso feita automaticamente.
Figura 3.1.3 - os tipos de converso automtica:
Tipo Converte em
sbyte short, int, long, float, double, decimal
byte short, ushort, int, uint, long, ulong, float, double, decimal
short int, long, float, double, decimal
ushort int, uint, long, ulong, float, double, decimal
int long, float, double, decimal
uint long, ulong, float, double, decimal
long float, double, decimal
ulong long, double, decimal
char ushort, int, uint, long, ulong, float, double, decimal
float double
Exemplos:
int VarInteiro = 32450;
long VarLong = VarInteiro;
float VarFloat = VarLong;
double VarDouble = VarFloat;
decimal VarDecimal = VarLong;
byte VarByte = (byte)VarInteiro;
INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO
Pgina
24
Checked e Unchecked
Toda converso pode causar erro , mas existe uma forma de forar a converso
sem que cause um erro. Para isso so utilizados o checked e o unchecked.
Figura 3.1.4 Exemplo do checked e do unchecked.
Veja a sada deste programa:
using System;
public class Checar
{
public static void Main()
{
int X = 2147483647;
int Y = 2;
int Produto = 0;
unchecked
{
Produto = X * Y;
Console.WriteLine("Resultado da Converso: "+Produto); // retorna -2
}
checked
{
try
{
Produto = X * Y;
Console.WriteLine("Resultado da Converso: "+Produto);
// Causa erro na compilao
}
catch(OverflowException e)
{
Console.WriteLine("Mensagem de Erro: "+e.ToString());
}
}
}
Curso de Introduo a Plataforma .Net FrameWork SDK
25
Operadores
Operadores so smbolos utilizados para efetuar alguma ao.
Veja a tabela de operadores que o C# suporta.
Tipo Operador
aritmticos + - * / %
lgicos & | ^ ! ~ && ||
concatenao +
Incremento e decremento ++ -INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO
Pgina
26
Pgina
10
this.y = y;
}
}
class MainClass
{
public static void Main()
{
// Declare an object:
Point myPoint;
// Initialize:
myPoint.x = 10;
myPoint.y = 20;
// Display results:
Console.WriteLine("My Point:");
Console.WriteLine("x = {0}, y = {1}", myPoint.x, myPoint.y);
}
}
Curso de Introduo a Plataforma .Net FrameWork SDK
27
28
using System;
class NewTest
{
struct MyStruct
{
public int x;
public int y;
public MyStruct (int x, int y)
INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO
Pgina
11
{
this.x = x;
this.y = y;
}
}
class MyClass
{
public string name;
public int id;
public MyClass ()
{
}
public MyClass (int id, string name)
{
this.id = id;
this.name = name;
}
}
public static void Main()
{
// Criao de objetos usando o construtor sem valores.
MyStruct Location1 = new MyStruct();
MyClass Employee1 = new MyClass();
// Valores de sada:
Console.WriteLine("Valores Default:");
Console.WriteLine(" Membros do Struct: {0}, {1}",
Location1.x, Location1.y);
Console.WriteLine(" Membros da Classe: {0}, {1}",
Employee1.name, Employee1.id);
// Criando objetos usando construtores parametrizados:
MyStruct Location2 = new MyStruct(10, 20);
MyClass Employee2 = new MyClass(1234, "John Martin Smith");
// Valores de sada:
Console.WriteLine("Valores Inicializados pelo construtor:");
Console.WriteLine(" Struct members: {0}, {1}",
Location2.x, Location2.y);
Console.WriteLine(" Class members: {0}, {1}",
Employee2.name, Employee2.id);
}
}
Curso de Introduo a Plataforma .Net FrameWork SDK
29
Arrays
Um tipo array uma matriz de valores do mesmo tipo, que criada em tempo
de execuo, podendo ser acessada por meio de um ndice.
A declarao do array sempre faz o uso de um colchete( [ ] ) depois do tipo da
INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO
Pgina
12
varivel. O uso da instruo new sempre deve ser utilizado, pois obrigatrio.
O tipo array pode ter diversas dimenses, o tamanho desta definido pelo
desenvolvedor, mas devemos saber que o primeiro ndice sempre zero.
No tipo array devemos sempre inicializar seus elementos, pois obrigatrio
tambm.
Veja abaixo a forma de sintaxe para a declarao de arrays.
Veja abaixo a forma de sintaxe para a declarao de um array de duas ou mais
dimenses.
Veja abaixo a forma de sintaxe para a declarao de uma matriz de arrays.
Veja abaixo a forma de sintaxe para a inicializao de arrays.
TIPO [ ] NomeDoArray = new TIPO [ tamanho do array ];
float [ ] ValorIndice = new float [ 10 ];
string [ ] ElementoVetor = new string [ 10 ];
TIPO [ , ] NomeDoArray = new TIPO [ tamanho do array, tamanho do array ];
float [ , ] ValorIndice = new float [ 10 , 10 ];
string [ , , ] ElementoVetor = new string [ 10 , 10 , 10 ];
TIPO [ ] [ ] NomeDoArray = new TIPO [ tamanho do array ] [ tamanho do array ];
float [ ] [ ] ValorIndice = new float [ 10 ] [ 10 ];
string [ ] [ ] [ ] ElementoVetor = new string [ 10 ] [ 10 ] [ 10 ];
TIPO [ ] NomeDoArray = new TIPO [ tamanho do array ] { valores };
float [ ] ValorIndice = new float [ 5 ] { 1.25, 2, 3.23, 1.32, 5 };
string [ , ] ElementoVetor = new string[3, 3] {{ab, ac, bc} , {ab, ac, bc}};
int [ ] [ ] MatrizDeInteiro = new int [ 2 ] [ ];
MatrizDeInteiro[ 0 ] = new int [ 5 ] {1,3,5,7,9};
MatrizDeInteiro[ 1 ] = new int [ 4 ] {2,4,6,8};
Curso de Introduo a Plataforma .Net FrameWork SDK
30
Exemplos e Exerccios:
Exemplo 01 comparao.
Veja a sada do programa acima:
using System;
public class Comparacao
{
public static void Main( )
{
// Exemplos com nmeros.
Console.Write("10 == 10: ");
Console.WriteLine(10 == 10);
Console.Write("10 != 10: ");
Console.WriteLine(10 != 10);
// Exemplos com objetos.
object objeto1 = 10;
object objeto2 = 10;
Console.Write("objeto1 == objeto2: ");
Console.WriteLine(objeto1 == objeto2);
INTRODUO a PROGRAMAO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAO
Pgina
13
31
32
Pgina
14
sbyte
byte
short
ushort
int
uint
long
ulong
float
double
Intervalo
Tamanho
-128 to 127
0 to 255
-32.768 to 32.767
0 to 65.535
-2.147.483.648 to 2.147.483.647
0 to 4.294.967.295
-9.223.372.036.854.775.808 to
9.223.372.036.854.775.807
0 to 18.446.744.073.709.551.615
Intervalo aproximado
Preciso
1.5e-45 to 3.4E38
5.0e-324 to 1.7e308
7 digitos
15-16 dgitos
Pgina
15