Linguagem C Verso 091028 Prof Mauro Csar Lopes

  • Slides: 84
Download presentation
Linguagem C# Versão – 091028 Prof. : Mauro César Lopes

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

Sumário n n n n Identificadores Tipos Constantes Enumerações Expressões Declarações Bloco de declarações

Sumário n n n n Identificadores Tipos Constantes Enumerações Expressões Declarações Bloco de declarações

Identificadores n n São nomes utilizados para identificar os elementos nos seus programas. Esses

Identificadores n n 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 n n C# reserva 77 identificadores, os quais não poderão ser utilizados

Palavras Chaves n n 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 n n Uma variável é definida como um lugar onde podemos armazenar dados

Variáveis n n 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 n Adote uma convenção de nomes que torne claras as

Boas práticas de programação n Adote uma convenção de nomes que torne claras as variáveis definidas n n Não utilize sublinhados nos identificadores Exemplo: Use valor. Mercadoria 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) n n É 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 n

Tipos de variáveis Define o tipo de dados que a variável irá armazenar n Inteira (sem parte fracionária) n n Ponto flutuante (é capaz de representar valores fracionários) n n float, double, decimal Caractere n n byte, short, ushort, int, uint, long, ulong char Booleana n bool: valores true (verdadeiro), false (falso)

Tipos de variáveis Tipo Tamanho Tipo. NET (em bytes) Descrição byte 1 Byte Sem

Tipos de variáveis Tipo Tamanho Tipo. NET (em bytes) Descrição byte 1 Byte Sem sinal (0 -255) char 2 Char Caractere Unicode bool 1 Booleano (Verdadeiro ou Falso) sbyte 1 Sbyte Com sinal (-128 a 127) short 2 Int 16 Com sinal ushort 2 UInt 16 Sem sinal int 4 Int 32 Com sinal uint 4 UInt 32 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 Int 64 Números inteiros ulong 8 UInt 64

Tipos de variáveis Tipo Tamanho Tipo (em. NET bytes) Descrição byte 1 Byte Sem

Tipos de variáveis Tipo Tamanho Tipo (em. NET bytes) Descrição byte 1 Byte Sem sinal (0 -255) char 2 Char Caractere Unicode bool 1 Booleano (true=Verdadeiro ou false=Falso) short 2 Int 16 Com sinal (-32. 768 a 32. 767) int 4 Int 32 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 Int 64 Números inteiros com sinal de -9. 223. 372. 036. 854. 775. 808 a 9. 223. 372. 036. 854. 775. 807

Variáveis n n n Uma variável poderá ser signed (sbyte, short, int) ou unsigned

Variáveis n n n 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 n n n int a, idade; char ch, caracter;

Exemplos de declaração de variáveis n n n 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

Atribuição de valores a variáveis Podemos atribuir o valor a uma variável usando o símbolo '=' (operador de atribuição) n Exemplos: int a = 1; // atribui o valor 1 a variável inteira a float f = -8. 76 F; // observe o sufixo F char c='a'; n

Atribuições n n Se tentarmos atribuir um número a uma propriedade do tipo texto

Atribuições n n Se tentarmos atribuir um número a uma propriedade do tipo texto o programa não irá compilar Por exemplo n n n 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 n n // comentário até o final da linha /*. . . Comentário

Comentários n n // 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 n n Numéricos agem em valores para criar novos valores Lógicos ou Booleanos

Operadores n n 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

Operadores Numéricos (ou Aritméticos) ++, -- Incremento, decremento +, -, *, /, % adição,

Operadores Numéricos (ou Aritméticos) ++, -- Incremento, decremento +, -, *, /, % adição, subtração, multiplicação, divisão, módulo (resto) Exemplo: int int x = y = a = 7; b = 3; x, y; a / b; a % b;

Operador ++ int x; int y; x = 23; y = x++; // operador

Operador ++ int x; int y; x = 23; y = x++; // operador pós-fixado Console. Write. Line(x + " " + y); // 23 24 x = 23; y = ++x; // operador pré-fixado Console. Write. Line(x + " " + y); // 24 e 24

Operadores Relacionais e Lógicos (Booleanos) Um operador booleano é um operador que faz um

Operadores Relacionais e Lógicos (Booleanos) Um operador booleano é um operador que faz um cálculo cujo resultado é true (verdadeiro) ou false (falso) 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

Operadores Lógicos Podem ser usados para testar condições mais complexas combinando condições simples n

Operadores Lógicos Podem ser usados para testar condições mais complexas combinando condições simples n n n Operador && ("e" lógico - AND) Operador || ("ou" lógico - OR) Operador ! ("não" lógico - NOT) Exemplo: bool porcentagem. Valida = (porcentagem>=0) && (porcentagem<=100);

Operadores Lógicos (Tabela Verdade) Expr 1 True False Expr 2 True False AND True

Operadores Lógicos (Tabela Verdade) Expr 1 True False Expr 2 True False AND True False Expr 1 Expr 2 OR True True False False Expr 1 NOT False True False

Operadores Relacionais > Maior que >= maior ou igual a < menor que <=

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

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 Atribuição Operador Uso = *= /= %= += -= <<= >>= &=

Operadores de Atribuição Operador Uso = *= /= %= += -= <<= >>= &= ^= |= Atribuição simples. Atribui o valor localizado a direita do '=' a variável a esquerda

Operadores de igualdade e atribuição Não confunda o operador de igualdade '==' com o

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 n n n São combinações de variáveis, constantes e operadores Quando montamos expressões

Expressões n n n 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 Operadores Categoria Operadores Primário (x) x. y x'y f(x) a[x] x++ x–

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 = *= /= %= += -= <<= &= ^= |=

Seqüência de comandos Um programa é uma seqüência de comandos ou instruções (executa uma

Seqüência de comandos Um programa é uma seqüência de comandos ou instruções (executa uma ação) <comando 1>; <comando 2>; . . . <comando N>; n

Bloco de comandos n n n Um bloco é uma seqüência de instruções agrupadas

Bloco de comandos n n n 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

Comandos condicionais n Permitem que uma expressão seja avaliada e que uma ação seja

Comandos condicionais n 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

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ão. Booleana) instrução-1; else instrução-2;

Comando if - Exemplo int a = 5; if(a<0) Console. Write. Line ("a é

Comando if - Exemplo int a = 5; if(a<0) Console. Write. Line ("a é negativo"); else Console. Write. Line ("a é positivo");

Comando if - Exemplo int a = 5; if(a<0) // avalia a condição (expressão

Comando if - Exemplo int a = 5; if(a<0) // avalia a condição (expressão relacional) { // avalia a condição a<0 Console. Write. Line ("a é negativo"); } else { Console. Write. Line ("a é positivo"); }

Comandos if em cascata if(dia==0) nome="Domingo"; else if (dia==1) nome="Segunda-Feira"; else if (dia==2) nome="Segunda-Feira";

Comandos if em cascata if(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";

Switch switch (expressão. De. Controle) { case expressão. Constante: instruções; break; . . .

Switch switch (expressão. De. Controle) { case expressão. Constante: instruções; break; . . . default: instruções; break; }

Switch n n expressão. De. Controle: é avaliada uma única vez expressão. Constante

Switch n n expressão. De. Controle: é avaliada uma única vez expressão. Constante

Comparação if / switch if(dia==0) nome="Domingo"; else if(dia==1) nome="segunda-feira"; . . . else nome="desconhecido";

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

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 n Basicamente temos duas formas de controlar um laço: n 1)

Controle de Fluxo n Basicamente temos duas formas de controlar um laço: n 1) laço controlado por contador n n n 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 n n n é 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

Controle de Fluxo (2) n n n Loops (laços) com teste no início (while)

Controle de Fluxo (2) n n n 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)

Comando while Repete o laço enquanto uma condição for verdadeira Exemplo: int i=0; while(i<5) { Console. Write. Line (i); i = i + 1; }

Comando do/while int i=0; do { Console. Write. Line("i={0}", i); i = i +

Comando do/while int i=0; do { Console. Write. Line("i={0}", i); i = i + 1; } while (i<5);

Exemplo do uso de do/while do { Console. Write. Line("Menu"); Console. Write. Line("1. Incluir");

Exemplo do uso de do/while do { Console. Write. Line("Menu"); Console. Write. Line("1. Incluir"); Console. Write. Line("2. Alterar"); Console. Write. Line("3. Excluir"); Console. Write. Line("4. Consultar"); Console. Write. Line("0. Sair"); String opcao=Console. Read. Line(); } while(opcao!="0");

Exercício n Escreva uma aplicação que leia e exiba a tecla lida enquanto a

Exercício n 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

Comando for Repete um loop (laço) um determinado número de vezes Exemplo: int i = 0; for(i=0; i<5; i++) { Console. Write. Line("i={0}", i); }

Comparação for x while for( inicialização; condição; incremento ) declaração; inicialização; while(condição) { declaração;

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. Write. Line(i); }

Comparação for x while int i; for(i=0; i<=9; i++) { Console. Write. Line(i); } int i; i=0; while(i<=9) { Console. Write. Line(i); i++; }

Loop Infinito int i; for(; ; ) { Console. Write. Line(i); } int i;

Loop Infinito int i; for(; ; ) { Console. Write. Line(i); } int i; i=0; while(true) { Console. Write. Line(i); }

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

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

Exemplo do Comando Break int num. Teclas=0; while (true) { // loop infinito //

Exemplo do Comando Break int num. Teclas=0; while (true) { // loop infinito // leia uma tecla em ch if(ch=='s') { break; } // exibe a tecla pressionada // incrementa contador de teclas pressionadas num. Teclas++; }

Comando continue int i=0; while (i<10) { if(i%2!=0) {// testa se o número for

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. Write. Line(i); i++; }

Formatação de Cadeia de Caracteres {núm. Parâmetro, espaço. Reservado: formatação} onde: n núm. Parâmetro:

Formatação de Cadeia de Caracteres {núm. Parâmetro, espaço. Reservado: formatação} onde: n núm. Parâmetro: indica qual parâmetro está sendo formatado (0, 1, . . . ) espaço. Reservado: 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

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 E F inteiros genéricos valores em geral notação científica valores reais numero em formato de ponto fixo G valores em geral (é utilizada a representação mais adequada ao número) N P X valores em geral numero de acordo com o pais local valores em geral percentagem inteiros notação científica

Exemplo n n {0, 4} parâmetro 0, 4 espaços reservados com alinhamento à direita,

Exemplo n n {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 n n n n n Console. Write. Line("{0: C}", 1000. 32); Console. Write.

Exemplos n n n n n Console. Write. Line("{0: C}", 1000. 32); Console. Write. Line("{0: D}", 23); Console. Write. Line("{0: E 2}", 13. 322); Console. Write. Line("{0: F 2}", 13. 322); Console. Write. Line("{0: G}", 13); Console. Write. Line("{0: N}", 1000000. 32); Console. Write. Line("{0: P}", 0. 43); Console. Write. Line("{0: X}", 29);

Exemplos (2) n n n n n Console. Write. Line("{0, 8: C}", 1000. 32);

Exemplos (2) n n n n n Console. Write. Line("{0, 8: C}", 1000. 32); Console. Write. Line("{0, 8: D}", 23); Console. Write. Line("{0, 8: E 2}", 13. 322); Console. Write. Line("{0, 8: F 2}", 13. 322); Console. Write. Line("{0, 8: G}", 13); Console. Write. Line("{0, 8: N}", 1000000. 32); Console. Write. Line("{0, 8: P}", 0. 43); Console. Write. Line("{0, 8: X 0}", 29);

Concatenção de Strings n n n Console. Write. Line("mauro " + "cesar " +

Concatenção de Strings n n n Console. Write. Line("mauro " + "cesar " + "lopes"); Console. Write. Line("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. Write. Line(int. Parse("3") + int. Parse("7"));

Conversão de Tipos n Use o método chamado Int 32. Parse ou int. Parse

Conversão de Tipos n Use o método chamado Int 32. 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. Read. Line() recebe // retorna uma variável

Conversão de Tipos // o método Console. Read. Line() recebe // retorna uma variável do tipo String s = Console. Read. Line(); // 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 d int i; float f; double d; // converte uma variável do tipo String (s no exemplo) em um inteiro i = int. Parse(s); // converte uma variável do tipo String (s no exemplo) em um float f = float. Parse(s) // converte uma variável do tipo String (s no exemplo) em um double d = double. Parse(s)

Definição de Constantes const <tipo> <nome. Da. Constante> = <valor> Exemplos: const int num.

Definição de Constantes const <tipo> <nome. Da. Constante> = <valor> Exemplos: const int num. Linhas = 3; const int num. Colunas = 2;

Arrays n n n O array é uma estrutura de dados de tamanho finita

Arrays n n n 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

Vetores n Para criar um vetor que armazene N elementos de um certo tipo

Vetores n Para criar um vetor que armazene N elementos de um certo tipo (tipo. Do. Vetor), utiliza-se a seguinte forma: tipo. Do. Vetor[] nome. Do. Vetor = new tipo. Do. Vetor[N]

Vetores - Exemplo n Criação de um vetor com a nota de prova de

Vetores - Exemplo n Criação de um vetor com a nota de prova de cada aluno da turma int num. Alunos=30; double[] notas = new double[num. Alunos];

Vetores n Para acessar cada elemento do array, usa-se o índice do elemento entre

Vetores n 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. 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

Vetores Observe que o primeiro elemento do array é o elemento 0 [0] primeiro elemento [1] segundo elemento. . . [N-1] enésimo elemento n

Criação e inicialização de um vetor // Cria e inicializa um vetor string[] nome.

Criação e inicialização de um vetor // Cria e inicializa um vetor string[] nome. De. Pessoas = { "Antonio", "Jose", "Joao"}; string[] nome. De. Pessoas = 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, . .

Matrizes Multidimensionais São matrizes com mais de uma dimensão (duas, três, quatro, . . . ) n Exemplo: Uma matriz bidimensional de 2 linhas por 3 colunas (2 x 3) int[, ] matriz = new int[2, 3]; Uma matriz tridimensional de 3 linhas, por 3 colunas por 3 níveis de profundidade é definida como: int[, , ] matriz 3 D = new int[3, 3, 3]; n

Acesso de elementos n n matriz[1, 2]=35; int valor = matriz[1, 2];

Acesso de elementos n n matriz[1, 2]=35; int valor = matriz[1, 2];

Exemplo - Matriz com três dimensões double[, , ] matriz 3 D = new

Exemplo - Matriz com três dimensões double[, , ] matriz 3 D = new double[10, 10]; matriz 3 D[0, 0, 1]=1. 0; matriz 3 D[0, 1, 0]=0. 65; . . .

Inicialização de Matrizes // inicializa uma matriz bidimensional (2 x 3), // isto é,

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 é,

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 n n n matriz. Length obtém o número de elementos

Alguns métodos da matrizes n n n matriz. Length obtém o número de elementos da matriz. Rank obtém o número de dimensões da matriz. Get. Length(dim) obtém o número de elementos da dimensão dim (inicia por 0)

Soma de Matrizes int[, ] matriz. A = { {1, 2, 3}, {4, 5,

Soma de Matrizes int[, ] matriz. A = { {1, 2, 3}, {4, 5, 6} }; int[, ] matriz. B = { {4, -1, 2}, {-3, -7, -6} }; int[, ] matriz. C = new int[2, 3]; // duas linha e // três colunas // C = A + B

Multiplicação de Matrizes int[, ] matriz. A = { {1, 2}, {4, 5} };

Multiplicação de Matrizes int[, ] matriz. A = { {1, 2}, {4, 5} }; int[, ] matriz. B = { {4, -1}, {-3, -7} }; int[, ] matriz. C = new int[2, 2]; // C = A x B Condiçõ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

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 static void print(double[, ] a) { //

Criando um método para exibir uma matriz static void print(double[, ] a) { // numero de linhas int m = a. Get. Length(0); // numero de colunas int n = a. Get. Length(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. Write. Line(); } }

Laço foreach/in n Usado para percorrer arrays ou coleções Não necessita testar condição booleana

Laço foreach/in n 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

foreach/in string[] alunas = {"giovanna", "fabiana", "livia", "iris"}; // percorre os nomes presentes no

foreach/in string[] alunas = {"giovanna", "fabiana", "livia", "iris"}; // percorre os nomes presentes no array // alunas foreach (string nome in alunas) { Console. Write. Line(nome); }

Backup - Slides

Backup - Slides

Palavras chave da Linguagem C# abstrac t as base bool break byte case catch

Palavras chave da Linguagem C# abstrac t as base bool break byte case catch char checke d class const delegat e do double else enum event explict extern false finally continu decimal default e

Palavras chave da Linguagem C# (2) fixed float foreach get goto if implict in

Palavras chave da Linguagem C# (2) fixed float foreach get goto if implict in interface internal is lock long namespac e new null object operator out override params private protected

Palavras chave da Linguagem C# (3) public readonly ref return sbyte sealed set short

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

Palavras chave da Linguagem C# (4) value virtual void volatile while

Classe String n n Propriedades Métodos

Classe String n n Propriedades Métodos

Propriedades e Métodos n n n n Length retorna o número de caracteres da

Propriedades e Métodos n n n n Length retorna o número de caracteres da String To. Upper() converte para maiúsculas To. Lower() converte para minúscula Index. Of() retorna a primeira ocorrência do caracter na string Last. Index. Of() retorna a última ocorrência do caráter na string Substring() Remove