Top Banner
Linguagem C# Versão – 091028 Prof.: Mauro César Lopes
84

Linguagem C# Versão – 091028 Prof.: Mauro César Lopes.

Apr 17, 2015

Download

Documents

Internet User
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Linguagem C# Versão – 091028 Prof.: Mauro César Lopes.

Linguagem C#

Versão – 091028Prof.: Mauro César Lopes

Page 2: Linguagem C# Versão – 091028 Prof.: Mauro César Lopes.

Sumário

Identificadores Tipos Constantes Enumerações Expressões Declarações Bloco de declarações

Page 3: Linguagem C# Versão – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

Operadores Relacionais

> Maior que

>= maior ou igual a

< menor que

<= menor ou igual a

Page 22: Linguagem C# Versão – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

Comando if - Exemplo

int a = 5;if(a<0) Console.WriteLine ("a é negativo");else Console.WriteLine ("a é positivo");

Page 32: Linguagem C# Versão – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

Switch

expressãoDeControle: é avaliada uma única vez

expressãoConstante

Page 36: Linguagem C# Versão – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

Comando do/while

int i=0;do { Console.WriteLine("i={0}",i); i = i + 1;} while (i<5);

Page 42: Linguagem C# Versão – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

Loop Infinito

int i;for(;;) { Console.WriteLine(i);}

int i;i=0;while(true){ Console.WriteLine(i);}

Page 48: Linguagem C# Versão – 091028 Prof.: Mauro César Lopes.

Comando break

int i=0;while (i++<10) { Console.WriteLine("i={0}",i); if(i==5) { break; }}

Page 49: Linguagem C# Versão – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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:X0}", 29);

Page 56: Linguagem C# Versão – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

Definição de Constantes

const <tipo> <nomeDaConstante> = <valor>

Exemplos:const int numLinhas = 3;const int numColunas = 2;

Page 60: Linguagem C# Versão – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

Acesso de elementos

matriz[1,2]=35; int valor = matriz[1,2];

Page 68: Linguagem C# Versão – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

Backup - Slides

Page 79: Linguagem C# Versão – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

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 – 091028 Prof.: Mauro César Lopes.

Palavras chave da Linguagem C# (4)

value virtual void volatile while

Page 83: Linguagem C# Versão – 091028 Prof.: Mauro César Lopes.

Classe String

Propriedades Métodos

Page 84: Linguagem C# Versão – 091028 Prof.: Mauro César Lopes.

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