linguagem c# versão – 090528 prof.: mauro césar lopes
Post on 16-Apr-2015
109 Views
Preview:
TRANSCRIPT
Linguagem C#
Versão – 090528
Prof.: Mauro César Lopes
Sumário
• Identificadores
• Tipos
• Constantes
• Enumerações
• Expressões
• Declarações
• Bloco de declarações
Identificadores
• São nomes utilizados para identificar os elementos nos seus programas. Esses elementos podem ser: namespace (espaço de nomes), classes, métodos, variáveis, etc.
• Podemos usar apenas letras, número e sublinhado para compor o nome dos identificadores
Palavras Chaves
• C# reserva 77 identificadores, os quais não poderão ser utilizados para outros propósitos
• Alguns exemplos: bool, break, char, default, enum, float, ...
Variáveis
• Uma variável é definida como um lugar onde podemos armazenar dados temporariamente e usá-los posteriormente
• Normalmente um variável possui um nome (identificador) que é usado para acessar seu conteúdo
• Uma variável poderá armazenar um número inteiro, de ponto flutuante, um caractere, uma cadeia de caracteres (String) , um valor booleano, etc.
• O nome de uma variável pode conter letras, número e ‘_’ (não pode haver sinais de pontuação e espaços em branco)
Boas práticas de programação
• Adote uma convenção de nomes que torne claras as variáveis definidas– Não utilize sublinhados nos identificadores
Exemplo:Use valorMercadoria ao invés de valor_da_mercadoria
– Não use identificadores cuja única diferença seja entre letras maiúsculas e minúsculas
– É importante notar que C# faz diferença entre letras maiúsculas e minúsculas
– Comece o nome com uma letra
Tipos de variáveis
Define o tipo de dados que a variável irá armazenar
• Inteira– byte, short, int, long
• Ponto flutuante– float, double, decimal
• Caractere– char
• Booleana– bool: valores true (verdadeiro), false (falso)
Tipos de variáveis
Tipo Tamanho (em bytes)
Tipo .NET Descrição
byte 1 Byte Sem sinal (0-255)
char 2 Char Caractere Unicode
bool 1 Boolean Booleano (Verdadeiro ou Falso)
sbyte 1 Sbyte Com sinal (-128 a 127)
short 2 Int16 Com sinal
ushort 2 UInt16 Sem sinal
int 4 Int32 Com sinal
uint 4 UInt32 Sem sinal
float 4 Single Números de ponto flutuante
double 8 Double Números de ponto flutuante de precisão dupla
decimal 16 Decimal Valores monetários
long 8 Int64 Números inteiros
ulong 8 UInt64
Tipos de variáveis (2)
Tipo Tamanho (em bytes)
Tipo .NET
Descrição
byte 1 Byte Sem sinal (0-255)
char 2 Char Caractere Unicode
bool 1 Boolean Booleano (true=Verdadeiro ou false=Falso)
short 2 Int16 Com sinal (-32.768 a 32.767)
int 4 Int32 Com sinal (-2.147.483.648 e 2.147.483.647)
float 4 Single Números de ponto flutuante. Armazena os valores de aproximadamente +/- 1,5*10-45 até aproximadamente +/-3,4*10^38 com sete número significativos. Usa o sufixo F
double 8 Double Números de ponto flutuante de precisão dupla (com 15 a 16 números significativos)
decimal 16 Decimal Valores monetários. Precisão fixa até 28 dígitos e a posição do ponto decimal. É normalmente usado em cálculos financeiros. Exibe sufixo “m” ou “M”
long 8 Int64 Números inteiros com sinal de -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807
Variáveis
• Uma variável poderá ser signed (sbyte, short, int) ou unsigned (byte, ushort, uint), isto é, com sinal ou sem sinal.
• Uma variável unsigned possui apenas valores positivos
• Uma variável signed possui valores positivos e negativos
Exemplos de declaração de variáveis
• int a, idade;• char ch, caracter;• float f, valor;• double d;• string s;
Toda variável deverá ser declarada explicitamente antes de ser usada
Atribuição de valores a variáveis
• Podemos atribuir o valor a uma variável usando o símbolo ‘=‘ (operador de atribuição)
• Exemplos:
int a = 1; // atribui o valor 1 a variável inteira a
float f = -8.76F; // observe o sufixo F
char c=‘a’;
Atribuições
• Se tentarmos atribuir um número a uma propriedade do tipo texto o programa não irá compilar
• Por exemplo– value.text = 1; erro– value.text = “1”; ok, porém o número um está
sendo tratado como texto e não como número– value.text = string.Parse(1); o número um é
convertido de inteiro para uma string pelo uso do método parse da classe string
Comentários
• // comentário até o final da linha• /*
... Comentário multilinha*/
Os comentários são ignorados pelo compilador, porém são úteis aos desenvolvedores porque ajudam a comentar o que o programa está fazendo
Operadores
• Numéricos agem em valores para criar novos valores
• Lógicos ou Booleanos é um operador que faz cálculos cujo resultado é verdadeiro ou falso.
• Relacionais são usados para descobrir se um valor é menor ou maior que outro do mesmo tipo
• Binários agem sobre dois operandos
Operadores Numéricos
++, -- Incremento, decremento
+, -, *, /, % adição, subtração, multiplicação, divisão, módulo (resto)
Exemplo:
int a = 7;int b = 3;int x,y;x = a / b;y = a % b;
Operador ++
int x;int y;
x = 23;y = x++; // operador pós-fixadoConsole.WriteLine(x + " " + y); // 23 24
x = 23;y = ++x; // operador pré-fixadoConsole.WriteLine(x + " " + y); // 24 e 24
Operadores Relacionais e Lógicos (Booleanos)
Operador Ação
==, != Igual a, diferente de
>, >=, <, <= Maior que, maior ou igual a, menor que, menor ou igual a
&& “E” lógico (AND)
|| “OU” lógico (OR)
! “NÃO” lógico
Um operador booleano é um operador que faz um cálculo cujo resultado é true (verdadeiro) ou false (falso)
Operadores Lógicos
Podem ser usados para testar condições mais complexascombinando condições simples
• Operador && (“e” lógico - AND)• Operador || (“ou” lógico - OR)• Operador ! (“não” lógico - NOT)
Exemplo:
bool porcentagemValida = (porcentagem>=0) && (porcentagem<=100);
Operadores Relacionais
> Maior que
>= maior ou igual a
< menor que
<= menor ou igual a
Operadores Lógicos Bit a Bit
& “E” binário
^ “XOR” ou-exclusivo
| “OU” binário
~ “NÃO” binário
>> deslocamento de bits a direito
<< deslocamento de bits a esquerda
Operadores de igualdade e atribuição
Não confunda o operador de igualdade ‘==‘ com o operador de atribuição ‘=‘.
A expressão x==y compara x com y tem valor true se os dois valores forem idênticos e false caso contrário.
Já a expressão x=y atribui o valor de y a variável x
Expressões
• São combinações de variáveis, constantes e operadores
• Quando montamos expressões temos que considerar a ordem em que os operadores são executados
• Essa ordem é definida pela tabela de precedência
Precedência de OperadoresCategoria Operadores
Primário (x) x.y x’y f(x) a[x] x++ x– new typeof sizeof checked unchecked stackalloc
Unário + - ! ~++x –x (T)x *x &x
Multiplicativo * / %
Aditivo + -
Deslocamento << >>
Relacional < > <= >= is as
Igualdade == !=
Lógico AND &
Lógico XOR ^
Lógico OR |
Condicional AND &&
Condicional OR ||
Condicional ?:
Atribuição = *= /= %= += -= <<= &= ^= |=
Seqüência de comandos
• Um programa é uma seqüência de comandos ou instruções (executa uma ação)
<comando 1>;
<comando 2>;
...
<comando N>;
Bloco de comandos
• Um bloco é uma seqüência de instruções agrupadas entre uma chave de abertura ({) e uma de fechamento (})
• Um bloco inicia um novo escopo
• Novas variáveis poderão ser definidas dentro do bloco, porém seus valores serão perdidos no final do bloco
Comandos condicionais
• Permitem que uma expressão seja avaliada e que uma ação seja executada no caso da expressão ser avaliada verdadeira (true) ou falsa (false).
Comando if
É usado para que possamos escolher entre dois blocos diferentes de código com base no resultado de uma expressão booleana.
A sintaxe de uma instrução if é:
if(expressãoBooleana)
instrução-1;
else
instrução-2;
Comando if - Exemplo
int a = 5;
if(a<0)
Console.WriteLine (“a é negativo”);
else
Console.WriteLine (“a é positivo”);
Comando if - Exemplo
int a = 5;if(a<0) { // avalia a condição a<0 Console.WriteLine (“a é negativo”);}else{ Console.WriteLine (“a é positivo”);}
Comandos if em cascataif(dia==0) nome=“Domingo”;else if (dia==1) nome=“Segunda-Feira”;else if (dia==2) nome=“Segunda-Feira”;else if (dia==3) nome=“Segunda-Feira”;else if (dia==4) nome=“Segunda-Feira”;else if (dia==5) nome=“Segunda-Feira”;else if (dia==6) nome=“Segunda-Feira”;else if (dia==1) nome=“Segunda-Feira”;
Switchswitch (expressãoDeControle){case expressãoConstante: instruções; break;case expressãoConstante: instruções; break;...default: instruções; break;}
Switch
• expressãoDeControle: é avaliada uma única vez
• expressãoConstante
Comparação if / switch
if(dia==0) nome=“Domingo”;else if(dia==1) nome=“segunda-feira”;...else nome=“desconhecido”;
switch(dia){ case 0: nome=“Domingo”; break; case 1: nome=“segunda-feira”; break ... default: nome=“desconhecido”; break;}
Controle de Fluxo
Um loop (laço) é uma série de instruções que devem ser repetidas até que uma certa condição seja encontrada
Controle de Fluxo (2)
• Loops (laços) com teste no início (while)
• Loops (laços) com testes no final (do/while)
• Loops (laços) de tamanho definido (for)
• Saindo de loops (laços) antes do término (break)
• Retestando a condição em loops (laços) (ex: continue)
Comando while
Repete o laço enquanto uma condição for verdadeira
Exemplo:int i=0;while(i<5) { Console.WriteLine (i); i = i + 1;}
Comando do/while
int i=0;
do {
Console.WriteLine("i={0}",i);
i = i + 1;
} while (i<5);
Exemplo do uso de do/while
do { Console.WriteLine(“Menu”); Console.WriteLine(“1. Incluir”); Console.WriteLine(“2. Alterar”); Console.WriteLine(“3. Excluir”); Console.WriteLine(“4. Consultar”); Console.WriteLine(“0. Sair”); String opcao=Console.ReadLine();
} while(opcao!=“0”);
Exercício
• Escreva uma aplicação que leia e exiba a tecla lida enquanto a tecla ‘s’ não for pressionada. A aplicação deverá contar também o número de teclas pressionadas e exibi-las no final da aplicação
Comando for
Repete um loop (laço) um determinado número de vezes
Exemplo:
int i = 0;
for(i=0;i<5;i++) {
Console.WriteLine("i={0}",i);
}
Comparação for x while
for(
inicialização;
condição;
incremento
)
declaração;
inicialização;
while(condição)
{
declaração;
incremento;
}
Comparação for x while
int i;
for(i=0; i<=9; i++)
{
Console.WriteLine(i);
}
int i;
i=0;
while(i<=9)
{
Console.WriteLine(i);
i++;
}
Loop Infinito
int i;
for(;;)
{
Console.WriteLine(i);
}
int i;
i=0;
while(true)
{
Console.WriteLine(i);
}
Comando break
int i=0;
while (i++<10) {
Console.WriteLine("i={0}",i);
if(i==5) {
break;
}
}
Exemplo do Comando Break
int numTeclas=0;while (true) { // loop infinito // leia uma tecla em ch if(ch==‘s’) { break; } // exibe a tecla pressionada // incrementa contador de teclas pressionadas numTeclas++;}
Comando continue
int 0=0;while (i<10) { if(i%2!=0) {// testa se o número for par continue; } // exibe os números ímpares Console.WriteLine(i); i++;}
Formatação de Cadeia de Caracteres
{númParâmetro,espaçoReservado:formatação}
onde:• númParâmetro: indica que parâmetro está
sendo formatado• espaçoReservado: indica o número de
caracteres mínimos para ocupar com o parâmetro
• formatação: indica formatação específica do tipo de dados a utilizar
Formatação de cadeia de caracteres - Exemplo
Especificação
Aplicação Significado
C valores em geral valor monetário de acordo com o pais local
D inteiros inteiros genéricos
E valores em geral notação científica
F valores reais numero em formato de ponto fixo
G valores em geral geral (é utilizada a representação mais adequada ao número)
N valores em geral numero de acordo com o pais local
P valores em geral percentagem
X inteiros notação científica
Exemplo
• {0,4} parâmetro 0, 4 espaços reservados com alinhamento à direita, sem formatação específica
• {0,-4} parâmetro 0, 4 espaços reservados com alinhamento à esquerda, sem formatação específica
Exemplos• Console.WriteLine("{0:C}", 1000.32);• Console.WriteLine("{0:D}", 23);• Console.WriteLine("{0:E2}", 13.322);• Console.WriteLine("{0:F2}", 13.322);• Console.WriteLine("{0:G}", 13.322);• Console.WriteLine("{0:G}", 13);• Console.WriteLine("{0:N}", 1000000.32);• Console.WriteLine("{0:P}", 0.43);• Console.WriteLine("{0:X}", 29);
Concatenção de Strings
• Console.WriteLine(“mauro “ + “cesar “ + “lopes”);
• Console.WriteLine(“3 “ + “7”);• Retorna a string 37 e não a operação de
3+7=10• Para obtermos a soma de 3 + 7 teríamos
que proceder da seguinte forma:• Console.WriteLine(int.Parse(“3“) +
int.Parse(“7”));
Conversão de Tipos
• Use o método chamado Int32.Parse ou int.Parse para converter um valor contido em uma string em um inteiro se você precisar realizar cálculos aritméticos em valores armazenados em string
Conversão de Tipos// o método Console.ReadLine() recebe // retorna uma variável do tipo StringString s = Console.ReadLine();// quando temos um número representado por// uma string não podemos fazer operações aritméticas com ele// Abaixo estão definidas as variáveis i, f e dint i;float f;double d;// converte uma variável do tipo String (s no exemplo) em um inteiroi = int.Parse(s);// converte uma variável do tipo String (s no exemplo) em um floatf = float.Parse(s)// converte uma variável do tipo String (s no exemplo) em um doubled = double.Parse(s)
Definição de Constantes
const <tipo> <nomeDaConstante> = <valor>
Exemplos:
const int numLinhas = 3;
const int numColunas = 2;
Arrays
• Um array é um vetor ou matriz que permite guardar um certo conjunto de variáveis, todas do mesmo tipo
Vetores
• Para criar um vetor que armazene N elementos de um certo tipo (identificado por tipoDoVetor), utiliza-se a seguinte forma:
tipoDoVetor[] nomeDoVetor = new tipoDoVetor[N]
Vetores - Exemplo
• Criação de um vetor com a nota de prova de cada aluno da turma
int numAlunos=30;
double[] notas = new notas[numAlunos];
Vetores
• Para acessar cada elemento do array, usa-se colchetes:
// coloca na posição 3 do vetor a nota 7.9
notas[3]=7.9;
// atribui a nota da posição 0 do vetor
double nota = notas[0];
Vetores
• Observe que o primeiro elemento do array é o elemento 0
[0] primeiro elemento
[1] segundo elemento
...
[N-1] enésimo elemento
Criação e inicialização de um vetor
// Cria e inicializa um vetorstring[] nomeDePessoas = { “Antonio”,
“Jose”, “Joao”};
string[] nomeDePessoas = new String[] { “Antonio”, “Jose”, “Joao”};
Obs: o compilador determina qual deverá ser o tamanho do vetor
Matrizes Multidimensionais
• São matrizes com mais de uma dimensão (duas, três, quatro, ...)
Exemplo:
Uma matriz bidimensional de 2 linhas por 3 colunas (2x3)
int[,] matriz = new [2,3];
Acesso de elementos
• matriz[1,2]=35;
• int valor = matriz[1,2];
Exemplo - Matriz com três dimensões
double[,,] matriz3D = new double[10,10,10];
matriz3D[0,0,1]=1.0;
matriz3D[0,1,0]=0.65;
...
Inicialização de Matrizes
// inicializa uma matriz bidimensional (2 x 3), isto é, duas linhas e três coluna
int[,] matriz = {
{1,2,3},
{4,5,6}
};
Inicialização de Matrizes
// inicializa uma matriz bidimensional (3 x 2), isto é, três linhas e duas coluna
int[,] matriz = {
{1,2},
{3,4},
{5,6}
};
Alguns métodos da matrizes
• matriz.Length obtém o número de elementos da matriz
• matriz.Rank obtém o número de dimensões da matriz
• matriz.GetLength(dim) obtém o número de elementos da dimensão dim
Soma de Matrizes
int[,] matrizA = { {1,2,3}, {4,5,6} };
int[,] matrizB = { {4,-1,2}, {-3,-7,-6} };
int[,] matrizC = new int[2,3];
// C = A + B
Multiplicação de Matrizes
int[,] matrizA = { {1,2}, {4,5} };int[,] matrizB = { {4,-1}, {-3,-7} };int[,] matrizC = new int[2,2];// C = A x BCondições:- o número de colunas da matriz A deverá ser
igual ao número de linhas da matriz B- a matriz resultante, C, terá a dimensão dada pelo
número de linhas da matriz A e o número de colunas da matriz B
Multiplicação de Matrizes
Cada elemento c[i,j] será dado pela multiplicação dos elemento da linha i multiplicados pelos elementos da linha j
c[i,j] += a[i,k] * b[k,j]
onde k varia de 0 a número de linhas da matriz A ou número de colunas da matriz B, que são iguais
Criando um método para exibir uma matriz
Backup - Slides
Palavras chave da Linguagem C#
abstract as base bool break
byte case catch char checked
class const continue decimal default
delegate do double else enum
event explict extern false finally
Palavras chave da Linguagem C# (2)
fixed float for foreach get
goto if implict in int
interface internal is lock long
namespace
new null object operator
out override params private protected
Palavras chave da Linguagem C# (3)
public readonly ref return sbyte
sealed set short sizeof stackalloc
static string struct switch this
throw true try typeof uint
ulong unchecked
unsafe ushort using
Palavras chave da Linguagem C# (4)
value virtual void volatile while
top related