introdução. //nosso primeiro programa c# /*programa olá mundo para compilar utilize csc...

44
C# Introduçã o

Upload: internet

Post on 18-Apr-2015

107 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

C#

Introdução

Page 2: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

//Nosso primeiro programa C#/*programa Olá mundopara compilar utilize csc OlaMundo.cs*/

using System;using System.Collections.Generic;using System.Linq;using System.Text;

namespace OlaMundo{ class Ola { static void Main(string[] args) { System.Console.WriteLine("Olá Mundo!"); } }}

Exemplo

Page 3: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

O C# nos permite definir comentários de duas maneiras: usando barras duplas (//) ou os caracteres /* E */.

Barras duplas (//) convertem o restante da linha em comentários:◦ //Nosso primeiro programa C#

Os caracteres /* E */ definem blocos de texto como comentários:/*Este é meu primeiro contato com C#Espero que aprenda rápido esta nova linguagem de

programaçãoObrigado!*/

Comentários

Page 4: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Um programa C# deve conter um método Main, que controla o início e o fim. static void Main(string[] args)

{ //... }

Método Main

Page 5: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Todas as instruções devem estar entre chaves e sempre ser finalizadas com um ponto e vírgula:{

//Código aqui;}

Além disso, C# é SENSÍVEL AO CONTEXTO, ou seja, diferencia letras maiúsculas de minúsculas. Por exemplo, Main não é o mesmo que main.

Sintaxe C#

Page 6: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Iniciar – Programas – Microsoft Visual Studio 2008

File – New Project Other Languages – C# - Console Application

Compilação e execução do programa

Page 7: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Aplicações Console

Page 8: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;
Page 9: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

As variáveis são utilizadas para armazenar informações na memória do computador, enquanto o programa C# está sendo executado. As informações contidas nas variáveis podem ser alteradas durante a execução do programa.

As variáveis devem conter um nome para que possam ser atribuídos valores a ela. Além do nome, devemos também definir o tipo de dados.

Variáveis

Page 10: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Ao nomear uma variável devemos observar as seguintes restrições:◦ O nome deve começar com uma letra ou _.◦ Não são permitidos espaços, pontos ou outros

caracteres de pontuação, ma podemos usar números.◦ O nome não pode ser uma palavra reservada do C#.

Exemplo: if, this, while, etc.◦ A sintaxe utilizada para declarar uma variável é:◦ Tipo nome;◦ Exemplos:

string nome; int idade = 50;

Variáveis

Page 11: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Tipos de Dados

Page 12: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Tipos integraisTipo Intervalo Tamanho Valor

padrão

sbyte -128 até 127 Inteiro de 8 bits com sinal

0

byte 0 até 255 Inteiro de 8 bits sem sinal

0

char U+0000 até U+ffff Caractere unicode de 16 bits

‘\0’

short -32,768 até 32,767 Inteiro de 16 bits com sinal

0

ushort

0 até 65.535 Inteiro de 16 bits sem sinal

0

int -2,147,483,648 até 2,147,483,647

Inteiro de 32 bits com sinal

0

uint 0 até 4,294,967,295 Inteiro de 32 bits sem sinal

0

long -9,223,372,036,854,775,808 até-9,223,372,036,854,775,807

Inteiro de 64 bits com sinal

0L

ulong 0 até 18,446,744,073,709,551,615

Inteiro de 64 bits sem sinal

0

Page 13: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Tipos de ponto flutuante

Tipo Intervalo Tamanho Valor padrão

float ±1,5e-45 até ±3.4e38 7 dígitos 0.0F

double

±5.0e-324 até ±1.7e308 15-16 dígitos 0.0D

Page 14: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Representa um único caractere de 16 bits. É utilizado para representar a maioria das linguagens do mundo. Podemos criar variáveis do tipo char e adicionar caracteres:◦ char letra = ‘A’;◦ char letra1 = ‘H’;

Podemos transformar de forma explícita, um integral num char e vice-versa:◦ char letra4 = (char) 72; //corresponde a letra H◦ int numero = (int) ‘B’; //inteiro 66

Tipo char

Page 15: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Combinações de caracteres que consistem de uma barra invertida (\) seguida de uma letra ou combinação de dígitos são chamadas sequências de scape. Sequências de scape são usadas em situações específicas: salto de linha, retorno, avanço de página, tabulação horizontal e vertical.

Sequências de scape

Page 16: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Sequências de scapeSequência

Significado

\’ Apóstrofo

\” Aspas

\\ Barra invertida

\a Alerta

\b Retrocesso

\f Avanço de página

\n Salto de linha

\r Retorno

\t Tabulação horizontal

\v Tabulação vertical

Page 17: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Uma variável precisa ser inicializada antes que possa ser utilizada. Se você declarar uma variável sem atribuir um valor inicial, como por exemplo:◦ int x;

será preciso inicializá-la; do contrário não será possível utilizá-la.◦ int x = 0;

Variáveis

Page 18: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

O tipo decimal é de alta precisão. Ideal para cálculos financeiros e monetários, é um tipo de dados de 128 bits que pode representar valores de aproximadamente:◦ ±1.0 x 10e-28 até ±7.9 x 10e28

com 28 ou 29 dígitos significantes. A precisão é dada em dígitos e não em casas decimais.

O sufixo m ou M deve ser utilizado para declarar variáveis do tipo decimal.◦ decimal x = 102.89m;

Sem o sufixo m ou M, a variável será tratada como sendo do tipo double. Um erro é gerado em tempo de compilação.

Tipo decimal

Page 19: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Representa um valor verdadeiro ou falso. É usado com variáveis ou métodos que retornem true ou false. O valor padrão do tipo bool é false.◦ bool x = true;◦ bool b = false;

Tipo bool

Page 20: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

O tipo string é representado por um conjunto de caracteres. Uma string deve estar cercada por aspas duplas.

◦ string b = “texto aqui”; O sinal de mais (+) é utilizado para concatenar uma

string◦ string b = “Concatenando este “ + “texto”;◦ string x = “A” + 2

Outra recurso importante é a facilidade de extrair um caractere definido na variável:

◦ char extrai = b[5]; A linha anterior extrai a letra t da variável b. Você pode extrair uma letra de uma palavra:

◦ char extrai = “Alfredo”[3];

Tipo string

Page 21: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

ConversõesMétodo Descrição

ToBoolean

Converte uma string para um valor booleano.

ToByte Converte para o tipo byte.

ToChar Converte para o tipo char.

ToDateTime

Converte para o tipo data e hora.

ToDecimal

Converte para o tipo decimal.

ToDouble Converte para o tipo double.

ToInt16 Converte para o tipo short.

ToInt32 Converte para o tipo inteiro.

ToInt64 Converte para o tipo long.

ToSingle Converte para o tipo single.

ToString Converte para o tipo string.

Page 22: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Operador unário: é aquele que possui somente um operando:◦ x++;

Operador binário: é aquele que possui dois operandos:◦ x = 5 * 8;

Operadores

Page 23: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Operadores PrimáriosExpressão Descrição x.y Acesso a um membro. f(x) Invocação de um método ou delegate

a[x] Acesso de array por índice x++ Pós-incremento x-- Pré-decremento new T(...) Criação de um novo objeto ou delegatenew T(...){...} Criação de objeto, com inicializador

new {...} Inicializador de objeto anonimo.

new T[...] Criação de array typeof(T) Obtém um objeto T da classe System.Type checked(x) Valida se a expressão é checked unchecked(x) Valida se a expressão é unchecked default (T) Obtém um valor padrão para o tipo T

delegate {} Função anônima (método anonimo)

Page 24: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Operadores Unários

Expressão Descrição+x Identidade -x Negação !x Negação Lógica ~x Negação Bitwise ++x Pré-incremento --x Pré-decremento (T)x Conversão explicita de x para o tipo T

Page 25: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Operadores Multiplicativos

Expression Description * Multiplicação

/ Divisão % Resto da divisão

Page 26: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Operadores aditivos

Expressão Descriçãox + y Adição, concatenação de string, combinação de delegate x - y Subtração, remoção de delegate

Page 27: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Operadores Relacionais

Expressão Descriçãox < y Menor que x > y Maior que x <= y Menor ou igual a x >= y Maior ou igual a x is T Retorna true, se x é um T, do contrário, false x as T Retorna x definido como um T, ou null se x não é um T

Page 28: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Igualdade

Expressão Descriçãox == y Igual x != y Não igual

Page 29: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Atribuição

Expressão Descrição= Atribuição x op= y Atribuição composta suporta estes operadores: +=, -=, *=, /=, %=, &=, |=, !=, <<=, >>= (T x) => y

Page 30: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Lógico, Condicional e Null

Categoria Expressão DescriçãoAND lógico x & y AND Inteiro bitwise, AND lógica booleana XOR lógico x ^ y XOR Inteiro bitwise, XOR lógica booleana OR lógico x | y OR Inteiro bitwise, OR lógica booleana AND condicional x && y Retorna verdadeiro se todos os argumentos forem verdadeiros, retorna falso se pelo menos um argumento for falsoOR condicional x || y Retorna verdadeiro se pelo menos um argumento for verdadeiro; retorna falso se todos os argumentos forem falsos;Null coalescing X ?? y Testa para y se x é null, do contrário para x Conditional x ?: y : z Testa para y se x é true, e para z se x é false

Page 31: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Exemplosint x = 2 + 5 * 8; //Resultado 42int x = 9 * 3 + 4 /2; //Resultado 29int x = 9 * (3 + 5) / 2; //Resultado 36

int v = 2 * 3; //retorna 6int d = 6 / 3; //retorna 2int r = 13 % 5; //retorna 3int s = 5 + 3; //retorna 8int m = 5 – 3; //retorna 2

int x = 1;++x; //agora x é igual a 2

int b = 5;--b; //agora b é igual a 4

int x = 8;x+=2; //é o mesmo que x = x+2;x-=3; //é o mesmo que x = x -3;x*=8; //é o mesmo que x = x *8;x/=2; //é o mesmo que x = x /2;x%=3; //é o mesmo que x = x % 3;

Page 32: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Todos os comandos em C# tem que terminar com um ponto-e-vírgula ( ; ) e esses comandos tem que estar delimitados por um bloco que tem início e fim, representados no C# pelos caracteres abre-chaves ( { ) que define o início do bloco e fecha-chaves ( } ) que define o fim do bloco. O namespace precisa ser delimitado com um início e fim, no caso com { e }, assim como o classe e o método Main. Outras estruturas também precisam ser delimitadas, e que serão vistas ao longo do curso. Por essa delimitação sabemos que a o método Main está dentro da classe Program que esta dentro do namespace Alo. Por padrão o Visual Studio fecha as chaves na mesma coluna onde ela foi aberta.

Blocos de comandos

Page 33: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Estruturas de decisão

Page 34: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

if (condicao) comando;

Instrução if

if (condicao) {//comando1...//comando2...

}

condição? expressão1 : expressão2;Se a condição for verdadeira, a primeira expressão é executada; caso seja falsa, a segunda expressão é executada.

Page 35: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

int a = 2;if(a > 1)

Console.WriteLine(“Condição verdadeira!”);

Exemplos

int a = 2;string mensagem = a >1 ? “Condição verdadeira”:

“Condição falsa”;Console.WriteLine(mensagem);

int a = 2;if(a > 1){

string mensagem = “Condição verdadeira!”;Console.WriteLine(mensagem);;

}

Page 36: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Instrução ifif (condição) {

if (condição) {}

}

if (condição) {//Instruções parte verdadeira;

}else {

//Instruções parte falsa}

Page 37: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

int a = 2;if(a > 1){

if (a == 2) {string mensagem = “Condição verdadeira”;Console.WriteLine(mensagem);

}}

Exemplos

bool a = true;if (!a) {

string mensagem = “Condição verdadeira”;Console.WriteLine(mensagem);

}else {

string mensagem = “Condição falsa”;Console.WriteLine(mensagem);

}

Page 38: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Instrução switch

switch (ArgumentoDeTeste) {case ExpressãoDoValor1:

//Código a executarbreak;

case ExpressãoDoValor2://Código a executarbreak;

default:/*Código a executar, se nenhuma condição

anterior for verdadeira*/break;

}

Page 39: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Estruturas de Repetição

Page 40: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Loops contadores executam uma determinada tarefa num determinado número de vezes.

Sintaxe:for (tipo Contador = ValorInicial; Contador (< | > | >= | <=) ValorFinal; Contador (++ | --)) {

//código aqui;}

Exemplo:for (int i = 0; i<=10; i++) {

//código aqui;}

Loops Contadores - for

Page 41: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

O C# suporta loops condicionais que nos permitem executar tarefas repetitivas enquanto determinada condição for satisfeita. A condição retorna um valor booleano (true ou false).

Loops condicionais

Page 42: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Executa os comandos dentro do loop enquanto a condição for verdadeira.

Sintaxe:while (condição) {

//Código aqui;variável (++ | --);

} Exemplo:

int i = 0;while ( i <= 10) {

Console.WriteLine(i.toString());i++;

}

Instrução while

Page 43: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

Executa os comandos dentro do loop, no mínimo uma vez, antes de avaliar se há necessidade de repetir ou não o loop.

Sintaxe:do {

//Código aqui;variável (++ | --);

}while (condição); Exemplo:

int x = 0;do {

Console.WriteLine(x);x++;

} while (x <= 10);

Instrução do

Page 44: Introdução. //Nosso primeiro programa C# /*programa Olá mundo para compilar utilize csc OlaMundo.cs*/ using System; using System.Collections.Generic;

André Luiz da SilvaEngenheiro de Computação

Email: [email protected]