linguagem c# versão – 091008 prof.: mauro césar lopes

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

Upload: internet

Post on 17-Apr-2015

110 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Linguagem C# Versão – 091008 Prof.: Mauro César Lopes

Linguagem C#

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

Page 2: Linguagem C# Versão – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 Prof.: Mauro César Lopes

Switch

expressãoDeControle: é avaliada uma única vez

expressãoConstante

Page 36: Linguagem C# Versão – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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:X}", 29);

Page 56: Linguagem C# Versão – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 Prof.: Mauro César Lopes

Acesso de elementos

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

Page 68: Linguagem C# Versão – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 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 – 091008 Prof.: Mauro César Lopes

Backup - Slides

Page 79: Linguagem C# Versão – 091008 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 – 091008 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 – 091008 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 – 091008 Prof.: Mauro César Lopes

Palavras chave da Linguagem C# (4)

value virtual void volatile while

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

Classe String

Propriedades Métodos

Page 84: Linguagem C# Versão – 091008 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