linguagem c# versão – 091008 prof.: mauro césar lopes
TRANSCRIPT
![Page 1: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/1.jpg)
Linguagem C#
Versão – 091008Prof.: Mauro César Lopes
![Page 2: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/2.jpg)
Sumário
Identificadores Tipos Constantes Enumerações Expressões Declarações Bloco de declarações
![Page 3: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/3.jpg)
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
![Page 4: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/4.jpg)
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, ...
![Page 5: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/5.jpg)
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)
![Page 6: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/6.jpg)
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 (Exemplo: contador e Contador)
É importante notar que C# faz diferença entre letras maiúsculas e minúsculas
Comece o nome com uma letra
![Page 7: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/7.jpg)
Tipos de variáveis
Define o tipo de dados que a variável irá armazenar
Inteira (sem parte fracionária) byte, sbyte, short, ushort, int, uint, long, ulong
Ponto flutuante (é capaz de representar valores fracionários) float, double, decimal
Caractere char
Booleana bool: valores true (verdadeiro), false (falso)
![Page 8: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/8.jpg)
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
![Page 9: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/9.jpg)
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 (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
![Page 10: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/10.jpg)
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
![Page 11: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/11.jpg)
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
![Page 12: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/12.jpg)
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';
![Page 13: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/13.jpg)
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
![Page 14: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/14.jpg)
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
![Page 15: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/15.jpg)
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
![Page 16: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/16.jpg)
Operadores Numéricos (ou Aritméticos)
++, -- 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;
![Page 17: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/17.jpg)
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
![Page 18: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/18.jpg)
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)
![Page 19: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/19.jpg)
Operadores Lógicos
Podem ser usados para testar condições mais complexas
combinando 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);
![Page 20: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/20.jpg)
Operadores Lógicos (Tabela Verdade)
Expr1
Expr2
AND
True True True
True False False
False True False
False False False
Expr1 NOT
False True
True False
Expr1
Expr2
OR
True True True
True False True
False True True
False False False
![Page 21: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/21.jpg)
Operadores Relacionais
> Maior que
>= maior ou igual a
< menor que
<= menor ou igual a
![Page 22: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/22.jpg)
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
![Page 23: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/23.jpg)
Operadores de Atribuição
Operador
Uso
= Atribuição simples. Atribui o valor localizado a direita do '=' a variável a esquerda
*=
/=
%=
+=
-=
<<=
>>=
&=
^=
|=
![Page 24: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/24.jpg)
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
![Page 25: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/25.jpg)
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
![Page 26: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/26.jpg)
Precedência de Operadores
Categoria 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 = *= /= %= += -= <<= &= ^= |=
![Page 27: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/27.jpg)
Seqüência de comandos
Um programa é uma seqüência de comandos ou instruções (executa uma ação)
<comando 1>;<comando 2>;...<comando N>;
![Page 28: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/28.jpg)
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, isto é, define onde as variáveis serão visíveis
Novas variáveis poderão ser definidas dentro do bloco, porém seus valores serão perdidos no final do bloco
![Page 29: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/29.jpg)
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).
![Page 30: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/30.jpg)
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;
![Page 31: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/31.jpg)
Comando if - Exemplo
int a = 5;if(a<0) Console.WriteLine ("a é negativo");else Console.WriteLine ("a é positivo");
![Page 32: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/32.jpg)
Comando if - Exemplo
int a = 5;if(a<0) // avalia a condição (expressão
relacional){ // avalia a condição a<0 Console.WriteLine ("a é negativo");}else{ Console.WriteLine ("a é positivo");}
![Page 33: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/33.jpg)
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";
![Page 34: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/34.jpg)
Switch
switch (expressãoDeControle){case expressãoConstante: instruções; break;case expressãoConstante: instruções; break;...default: instruções; break;}
![Page 35: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/35.jpg)
Switch
expressãoDeControle: é avaliada uma única vez
expressãoConstante
![Page 36: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/36.jpg)
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;}
![Page 37: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/37.jpg)
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
![Page 38: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/38.jpg)
Controle de Fluxo
Basicamente temos duas formas de controlar um laço: 1) laço controlado por contador
usa-se um contador para controlar o número de repetições do laços
o contador deverá ser decrementado ou incrementado a cada iteração visando que atinja uma condição de parada do laço
2) laço controlado por sentinela é necessário usar uma variável com um valor de sentinela o laço estará ativo enquanto a condição dada pela sentinela
permanecer sem alteração o valor da sentinela deverá ter seu valor alterado para que
o laço seja interrompido
![Page 39: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/39.jpg)
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)
![Page 40: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/40.jpg)
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;}
![Page 41: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/41.jpg)
Comando do/while
int i=0;do { Console.WriteLine("i={0}",i); i = i + 1;} while (i<5);
![Page 42: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/42.jpg)
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");
![Page 43: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/43.jpg)
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
![Page 44: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/44.jpg)
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);}
![Page 45: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/45.jpg)
Comparação for x while
for( inicialização; condição; incremento) declaração;
inicialização;while(condição){ declaração; incremento;}
![Page 46: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/46.jpg)
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++;}
![Page 47: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/47.jpg)
Loop Infinito
int i;for(;;) { Console.WriteLine(i);}
int i;i=0;while(true){ Console.WriteLine(i);}
![Page 48: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/48.jpg)
Comando break
int i=0;while (i++<10) { Console.WriteLine("i={0}",i); if(i==5) { break; }}
![Page 49: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/49.jpg)
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++;}
![Page 50: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/50.jpg)
Comando continue
int i=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++;}
![Page 51: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/51.jpg)
Formatação de Cadeia de Caracteres
{númParâmetro,espaçoReservado:formatação}
onde: númParâmetro: indica qual parâmetro está
sendo formatado (0, 1, ...) 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
![Page 52: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/52.jpg)
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
![Page 53: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/53.jpg)
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
![Page 54: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/54.jpg)
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);
![Page 55: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/55.jpg)
Exemplos (2) Console.WriteLine("{0,8:C}", 1000.32); Console.WriteLine("{0,8:D}", 23); Console.WriteLine("{0,8:E2}", 13.322); Console.WriteLine("{0,8:F2}", 13.322); Console.WriteLine("{0,8:G}", 13.322); Console.WriteLine("{0,8:G}", 13); Console.WriteLine("{0,8:N}", 1000000.32); Console.WriteLine("{0,8:P}", 0.43); Console.WriteLine("{0,8:X}", 29);
![Page 56: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/56.jpg)
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"));
![Page 57: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/57.jpg)
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
![Page 58: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/58.jpg)
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)
![Page 59: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/59.jpg)
Definição de Constantes
const <tipo> <nomeDaConstante> = <valor>
Exemplos:const int numLinhas = 3;const int numColunas = 2;
![Page 60: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/60.jpg)
Arrays
O array é uma estrutura de dados de tamanho finita que armazena elementos do mesmo tipo.
Possui acesso direto a cada elemento através de índices
O primeiro elemento do array é acessado através do índice 0. Se o array possuir n elementos, então o índice no n-ésimo elemento será dado por n-1
![Page 61: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/61.jpg)
Vetores
Para criar um vetor que armazene N elementos de um certo tipo (tipoDoVetor), utiliza-se a seguinte forma:
tipoDoVetor[] nomeDoVetor = new tipoDoVetor[N]
![Page 62: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/62.jpg)
Vetores - Exemplo
Criação de um vetor com a nota de prova de cada aluno da turma
int numAlunos=30;double[] notas = new
double[numAlunos];
![Page 63: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/63.jpg)
Vetores
Para acessar cada elemento do array, usa-se o índice do elemento entre colchetes:
// coloca na posição 3 (isto é, 4ª posição) do// vetor a nota 7.9notas[3]=7.9;// atribui a nota da posição 0 do vetordouble nota = notas[0];
![Page 64: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/64.jpg)
Vetores
Observe que o primeiro elemento do array é o elemento 0
[0] primeiro elemento[1] segundo elemento...[N-1] enésimo elemento
![Page 65: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/65.jpg)
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
![Page 66: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/66.jpg)
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 int[2,3];Uma matriz tridimensional de 3 linhas, por 3
colunas por 3 níveis de profundidade é definida como:
int[,,] matriz3D = new int[3,3,3];
![Page 67: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/67.jpg)
Acesso de elementos
matriz[1,2]=35; int valor = matriz[1,2];
![Page 68: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/68.jpg)
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;...
![Page 69: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/69.jpg)
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} };
![Page 70: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/70.jpg)
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} };
![Page 71: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/71.jpg)
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 (inicia por 0)
![Page 72: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/72.jpg)
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]; // duas
linha e// três colunas
// C = A + B
![Page 73: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/73.jpg)
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
![Page 74: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/74.jpg)
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
![Page 75: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/75.jpg)
Criando um método para exibir uma matriz
static void print(double[,] a) {
// numero de linhas int m = a.GetLength(0); // numero de colunas int n = a.GetLength(1);
for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { Console.Write("a[{0},{1}]={2}",i,j,a[i, j]+"\t"); } Console.WriteLine(); }
}
![Page 76: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/76.jpg)
Laço foreach/in
Usado para percorrer arrays ou coleções
Não necessita testar condição booleana para garantir sua execução
Quando todos os elementos do array ou coleção tiverem sido varridos, o laço será abandonado
![Page 77: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/77.jpg)
foreach/in
string[] alunas = {"giovanna","fabiana","livia","iris"};
// percorre os nomes presentes no array// alunasforeach (string nome in alunas){ Console.WriteLine(nome);}
![Page 78: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/78.jpg)
Backup - Slides
![Page 79: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/79.jpg)
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
![Page 80: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/80.jpg)
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
![Page 81: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/81.jpg)
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
![Page 82: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/82.jpg)
Palavras chave da Linguagem C# (4)
value virtual void volatile while
![Page 83: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/83.jpg)
Classe String
Propriedades Métodos
![Page 84: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes](https://reader036.vdocuments.com.br/reader036/viewer/2022062700/552fc114497959413d8c77b1/html5/thumbnails/84.jpg)
Propriedades e Métodos
Length retorna o número de caracteres da String
ToUpper() converte para maiúsculas ToLower() converte para minúscula IndexOf() retorna a primeira
ocorrência do caracter na string LastIndexOf() retorna a última
ocorrência do caráter na string Substring() Remove