Exemplo - MLTech

Download Report

Transcript Exemplo - MLTech

Linguagem C#

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

Sumário

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

Identificadores

• São nomes utilizados para identificar os elementos nos seus programas. Esses elementos podem ser: namespace (espaço de nomes), classes, métodos, variáveis, etc.

• Podemos usar apenas letras, número e sublinhado para compor o nome dos identificadores

Palavras Chaves

• C# reserva 77 identificadores, os quais não poderão ser utilizados para outros propósitos • Alguns exemplos: bool, break, char, default, enum, float, ...

Variáveis

• Uma variável é definida como um lugar onde podemos armazenar dados temporariamente e usá-los posteriormente • Normalmente um variável possui um nome (identificador) que é usado para acessar seu conteúdo • Uma variável poderá armazenar um número inteiro, de ponto flutuante, um caractere, uma cadeia de caracteres (String) , um valor booleano, etc.

• O nome de uma variável pode conter letras, número e ‘_’ (não pode haver sinais de pontuação e espaços em branco)

Boas práticas de programação

• Adote uma convenção de nomes que torne claras as variáveis definidas – Não utilize sublinhados nos identificadores Exemplo: Use valorMercadoria ao invés de valor_da_mercadoria – Não use identificadores cuja única diferença seja entre letras maiúsculas e minúsculas – É importante notar que C# faz diferença entre letras maiúsculas e minúsculas – Comece o nome com uma letra

Tipos de variáveis

Define o tipo de dados que a variável irá armazenar • Inteira – byte, short, int, long • Ponto flutuante – float, double, decimal • Caractere – char • Booleana – bool: valores true (verdadeiro), false (falso)

Tipos de variáveis

Tipo

byte char bool sbyte short ushort int uint float double decimal long ulong

Tamanho ( em bytes )

1 2 1 1 2 2 4 4 4 8 16 8 8

Tipo .NET

Byte Char Boolean Sbyte Int16 UInt16 Int32 UInt32 Single Double Decimal Int64 UInt64

Descrição

Sem sinal (0-255) Caractere Unicode Booleano (Verdadeiro ou Falso) Com sinal (-128 a 127) Com sinal Sem sinal Com sinal Sem sinal Números de ponto flutuante Números de ponto flutuante de precisão dupla Valores monetários Números inteiros

Tipos de variáveis (2)

Tipo

byte char bool short int float double decimal long

Tamanho ( em bytes )

1 2 1 2 4 4

Tipo .NET

Byte Char Boolean Int16 Int32 Single 8 16 8 Double Decimal Int64

Descrição

Sem sinal (0-255) Caractere Unicode Booleano (true=Verdadeiro ou false=Falso) Com sinal (-32.768 a 32.767) Com sinal (-2.147.483.648 e 2.147.483.647) 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 Números de ponto flutuante de precisão dupla (com 15 a 16 números significativos) 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” Números inteiros com sinal de -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807

Variáveis

• Uma variável poderá ser

signed

(sbyte, short, int) ou

unsigned

(byte, ushort, uint), isto é, com sinal ou sem sinal.

• Uma variável

unsigned

possui apenas valores positivos • Uma variável

signed

positivos e negativos possui valores

Exemplos de declaração de variáveis

• int a, idade; • char ch, caracter; • float f, valor; • double d; • string s; Toda variável deverá ser declarada explicitamente antes de ser usada

Atribuição de valores a variáveis

• Podemos atribuir o valor a uma variável usando o símbolo ‘=‘ (operador de atribuição) • Exemplos: int a = 1; // atribui o valor 1 a variável inteira a float f = -8.76F; // observe o sufixo F char c=‘a’;

Atribuições

• Se tentarmos atribuir um número a uma propriedade do tipo texto o programa não irá compilar • Por exemplo – value.text = 1;  erro – value.text = “1”;  ok, porém o número um está sendo tratado como texto e não como número – value.text = string.Parse(1);  o número um é convertido de inteiro para uma string pelo uso do método parse da classe string

Comentários

• // comentário até o final da linha • /* ... Comentário multilinha */ Os comentários são ignorados pelo compilador, porém são úteis aos desenvolvedores porque ajudam a comentar o que o programa está fazendo

Operadores

• • • •

Numéricos

 novos valores agem em valores para criar

Lógicos ou Booleanos

 é um operador que faz cálculos cujo resultado é verdadeiro ou falso.

Relacionais

 são usados para descobrir se um valor é menor ou maior que outro do mesmo tipo

Binários

 agem sobre dois operandos

Operadores Numéricos

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

Operador ++

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

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 • Operador && (“e” lógico - AND) • Operador || (“ou” lógico - OR) • Operador ! (“não” lógico - NOT) Exemplo: bool porcentagemValida = (porcentagem>=0) && (porcentagem<=100);

Operadores Relacionais

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

& ^ | ~ >> <<

Operadores Lógicos Bit a Bit

“E” binário “XOR” ou-exclusivo “OU” binário “NÃO” binário deslocamento de bits a direito deslocamento de bits a esquerda

Operadores de igualdade e atribuição

Não confunda o operador de igualdade ‘==‘ com o operador de atribuição ‘=‘. A expressão x==y compara x com y tem valor

true

se os dois valores forem idênticos e

false

caso contrário.

Já a expressão x=y atribui o valor de y a variável x

Expressões

• São combinações de variáveis, constantes e operadores • Quando montamos expressões temos que considerar a ordem em que os operadores são executados • Essa ordem é definida pela tabela de precedência

Precedência de Operadores

Categoria

Primário Unário Multiplicativo Aditivo Deslocamento Relacional Igualdade Lógico AND Lógico XOR Lógico OR Condicional AND Condicional OR Condicional Atribuição

Operadores

(x) x.y x’y f(x) a[x] x++ x– new typeof sizeof checked unchecked stackalloc + - ! ~++x –x (T)x *x &x * / % + << >> < > <= >= is as == != & ^ | && || ?: = *= /= %= += -= <<= &= ^= |=

Seqüência de comandos

• Um programa é uma seqüência de comandos ou instruções (executa uma ação) ; ; ...

;

Bloco de comandos

• Um bloco é uma seqüência de instruções agrupadas entre uma chave de abertura ({) e uma de fechamento (}) • Um bloco inicia um novo escopo • Novas variáveis poderão ser definidas dentro do bloco, porém seus valores serão perdidos no final do bloco

Comandos condicionais

• Permitem que uma expressão seja avaliada e que uma ação seja executada no caso da expressão ser avaliada verdadeira (

true

) ou falsa (

false

).

Comando if

É usado para que possamos escolher entre dois blocos diferentes de código com base no resultado de uma expressão booleana.

A sintaxe de uma instrução if é: if(expressãoBooleana) instrução-1; else instrução-2;

Comando if - Exemplo

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

Comando if - Exemplo

int a = 5; } if(a<0) { // avalia a condição a<0 Console.WriteLine (“a é negativo”); } else { Console.WriteLine (“a é positivo”);

Comandos if em 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 (expressãoDeControle) { case expressãoConstante: instruções; break; case expressãoConstante: instruções; break; ...

default: instruções; break;

Switch

Switch

• expressãoDeControle: é avaliada uma única vez • expressãoConstante

Comparação if / switch

if(dia==0) nome=“Domingo”; else if(dia==1) nome=“segunda-feira”; ...

else nome=“desconhecido”; } { switch(dia) case 0: nome=“Domingo”; break; case 1: nome=“segunda-feira”; break ...

default: nome=“desconhecido”; break;

Controle de Fluxo

Um loop (laço) é uma série de instruções que devem ser repetidas até que uma certa condição seja encontrada

Controle de Fluxo (2)

• Loops (laços) com teste no início (while) • Loops (laços) com testes no final (do/while) • Loops (laços) de tamanho definido (for) • Saindo de loops (laços) antes do término (break) • Retestando a condição em loops (laços) (ex: continue)

Comando while

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

Comando do/while

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

Exemplo do uso de do/while

do { Console.WriteLine(“Menu”); Console.WriteLine(“1. Incluir”); Console.WriteLine(“2. Alterar”); Console.WriteLine(“3. Excluir”); Console.WriteLine(“4. Consultar”); Console.WriteLine(“0. Sair”); String opcao=Console.ReadLine(); } while(opcao!=“0”);

Exercício

• Escreva uma aplicação que leia e exiba a tecla lida enquanto a tecla ‘s’ não for pressionada. A aplicação deverá contar também o número de teclas pressionadas e exibi las no final da aplicação

Comando for

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

Comparação for x while

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

Comparação for x while

} int i; { for(i=0; i<=9; i++) Console.WriteLine(i); } { int i; i=0; while(i<=9) Console.WriteLine(i); i++;

Loop Infinito

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

Comando break

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

Exemplo do Comando Break

} int numTeclas=0; while (true) { // loop infinito // leia uma tecla em ch if(ch==‘s’) { break; } // exibe a tecla pressionada // incrementa contador de teclas pressionadas numTeclas++;

Comando continue

} int 0=0; while (i<10) { if(i%2!=0) {// testa se o número for par continue; } // exibe os números ímpares Console.WriteLine(i); i++;

Formatação de Cadeia de Caracteres

{númParâmetro,espaçoReservado:formatação} onde: • númParâmetro: indica que parâmetro está sendo formatado • espaçoReservado: indica o número de caracteres mínimos para ocupar com o parâmetro • formatação: indica formatação específica do tipo de dados a utilizar

Formatação de cadeia de caracteres - Exemplo

Especifica ção

C

Aplicação

valores em geral inteiros

Significado

valor monetário de acordo com o pais local inteiros genéricos D E F G valores em geral valores reais valores em geral valores em geral notação científica numero em formato de ponto fixo geral (é utilizada a representação mais adequada ao número) numero de acordo com o pais local N P X valores em geral inteiros percentagem notação científica

Exemplo

• {0,4}  parâmetro 0, 4 espaços reservados com alinhamento à direita, sem formatação específica • {0,-4}  parâmetro 0, 4 espaços reservados com alinhamento à esquerda, sem formatação específica

Exemplos

• Console.WriteLine("{0:C}", 1000.32); • Console.WriteLine("{0:D}", 23); • Console.WriteLine("{0:E2}", 13.322); • Console.WriteLine("{0:F2}", 13.322); • Console.WriteLine("{0:G}", 13.322); • Console.WriteLine("{0:G}", 13); • Console.WriteLine("{0:N}", 1000000.32); • Console.WriteLine("{0:P}", 0.43); • Console.WriteLine("{0:X}", 29);

Concatenção de Strings

• Console.WriteLine(“mauro “ + “cesar “ + “lopes”); • Console.WriteLine(“3 “ + “7”); • Retorna a string 37 e não a operação de 3+7=10 • Para obtermos a soma de 3 + 7 teríamos que proceder da seguinte forma: • Console.WriteLine(int.Parse(“3“) + int.Parse(“7”));

Conversão de Tipos

• Use o método chamado Int32.Parse ou int.Parse para converter um valor contido em uma string em um inteiro se você precisar realizar cálculos aritméticos em valores armazenados em string

Conversão de Tipos

// o método Console.ReadLine() recebe // retorna uma variável do tipo String String 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 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 =

Exemplos: const

int numLinhas = 3;

const

int numColunas = 2;

Arrays

• Um array é um vetor ou matriz que permite guardar um certo conjunto de variáveis, todas do mesmo tipo

Vetores

• Para criar um vetor que armazene N elementos de um certo tipo (identificado por tipoDoVetor), utiliza-se a seguinte forma: tipoDoVetor[] nomeDoVetor = new tipoDoVetor[N]

Vetores - Exemplo

• Criação de um vetor com a nota de prova de cada aluno da turma int numAlunos=30; double[] notas = new notas[numAlunos];

Vetores

• Para acessar cada elemento do array, usa-se colchetes: // coloca na posição 3 do vetor a nota 7.9

notas[3]=7.9; // atribui a nota da posição 0 do vetor double nota = notas[0];

Vetores

• Observe que o primeiro elemento do array é o elemento 0 [0]  primeiro elemento [1]  segundo elemento ...

[N-1]  enésimo elemento

Criação e inicialização de um vetor

// Cria e inicializa um vetor string[] nomeDePessoas = { “Antonio”, “Jose”, “Joao”}; string[] nomeDePessoas = new String[] { “Antonio”, “Jose”, “Joao”}; Obs: o compilador determina qual deverá ser o tamanho do vetor

Matrizes Multidimensionais

• São matrizes com mais de uma dimensão (duas, três, quatro, ...)

Exemplo

: Uma matriz bidimensional de 2 linhas por 3 colunas (2x3) int[,] matriz = new [2,3];

Acesso de elementos

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

Exemplo Matriz com três dimensões

double[,,] matriz3D = new double[10,10,10]; matriz3D[0,0,1]=1.0; matriz3D[0,1,0]=0.65; ...

Inicialização de Matrizes

// inicializa uma matriz bidimensional (2 x 3), isto é, duas linhas e três coluna int[,] matriz = { {1,2,3}, }; {4,5,6}

Inicialização de Matrizes

// inicializa uma matriz bidimensional (3 x 2), isto é, três linhas e duas coluna int[,] matriz = { {1,2}, }; {3,4}, {5,6}

Alguns métodos da matrizes

• matriz.

Length

 obtém o número de elementos da matriz • matriz.

Rank

 obtém o número de dimensões da matriz • matriz.

GetLength

(dim)  obtém o número de elementos da dimensão dim

Soma de Matrizes

int[,] matrizA = { {1,2,3}, {4,5,6} }; int[,] matrizB = { {4,-1,2}, {-3,-7,-6} }; int[,] matrizC = new int[2,3]; // C = A + B

Multiplicação de Matrizes

int[,] matrizA = { {1,2}, {4,5} }; int[,] matrizB = { {4,-1}, {-3,-7} }; int[,] matrizC = new int[2,2]; // C = A x 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 linha i multiplicados pelos elementos da linha j c[i,j] += a[i,k] * b[k,j] onde k varia de 0 a número de linhas da matriz A ou número de colunas da matriz B, que são iguais

Criando um método para exibir uma matriz

Backup - Slides

Palavras chave da Linguagem C#

abstract as base bool break byte class case const catch char continue decimal checked default delegate event do explict double extern else false enum finally

Palavras chave da Linguagem C# (2)

fixed float for foreach get goto if interface internal implict is in lock int long namespac e out new override null params object operator private protected

Palavras chave da Linguagem C# (3)

public readonly ref return sbyte sealed static set string short struct sizeof stackalloc switch this throw ulong true try unchecke d unsafe typeof ushort uint using

Palavras chave da Linguagem C# (4)

value virtual void volatile while