sábado, 17 de julho de 2010

Mini-Curso C# - Parte #6

Salve, salve amigos.

Vamos continuar nosso mini-curso.
 
Laço do.. while

Vejamos, porque é que teríamos mais um loop do tipo 'while'? Se fossemos analisar
com cuidado veríamos que o loop 'while' dependendo do caso pode nunca ser
executado, ou seja, se a condição do loop 'while' retorna falsa de primeira ele nunca
vai ser executado. No exemplo acima se atribuíssemos o valor 10 a variável contador
em sua declaração o loop 'while' nunca começaria. Com o loop 'do.. while' o código
será executado ao menos uma vez porque nós fazemos a verificação da condição no
final da instrução, veja:

do
{
//instruções
}
while (expressão booleana)

Podemos traduzir 'do' para 'faça', ou seja, faça as instruções enquanto (while)
expressão seja verdadeira. Assim garantimos que ao menos uma vez nossas instruções
serão executadas. Exemplo:

int contador = 10;
do
{
MessageBox.Show (contador.ToString());
}
while(contador != 10);

Veja que mesmo contador sendo igual a 10 a instrução será executa ao menos uma vez
porque só depois que fazemos a verificação.
 
Laço foreach

Nós iremos aprender sobre arrays no próximo artigo, mas para mostrar o
funcionamento do loop 'foreach' tenho que usar um array, explicarei melhor no sobre
arrays no próximo artigo.

O loop 'foreach' é usado para interagir (percorrer) listas. Ele opera sobre Arrays ou
coleções veja sua syntax básica:

foreach ( in )
{
//instruções
}

Veja um exemplo pratico para facilitar o entendimento:

string[] nomes = {"Cleber", "Carol", "Denis", "Roberto"};
foreach (string pessoa in nomes)
{
MessageBox.Show ("{0} ", pessoa);
}

Criamos um array de string e colocamos alguns elementos dentro e no nosso loop
'foreach' será exibida todos os elementos dentro de nosso array. Veremos mais sobre
o 'foreach' no próximo artigo que trata de arrays.

Até a próxima.
 
Take care.

Mini-Curso C# - Parte #5


Salve, salve amigos.

Vamos continuar nosso mini-curso.

Estrutura de Repetição

As estruturas de repetição são usadas para controlar a execução de códigos
repetidamente até que uma condição seja verdadeira.
Veja os tipos de estrutura de repetição que vamos aprender neste artigo:
  •  Laço for
  •  Laço while
  •  Laço do.. while
  •  Laço foreach 
Uma estrutura de repetição é também conhecida como Loop/Laço. O primeiro tipo de
loop que vamos estudar é o 'for'. O loop 'for' trabalha checando uma condição para
executar um bloco de código até que essa condição seja verdadeira, no caso do loop
'for' temos que em sua syntax declarar sua inicialização, sua condição e seu
incremento, veja:

for (int i =0; i <= 10; i++)
{
//instruções
}

No código acima temos a syntax de um loop 'for' onde na primeira parte declaramos
uma variável do tipo inteiro (int) e a inicializamos com o valor 0 (zero), na segunda
parte temos a condição nesse caso verifica se a nossa variável recém criada é menor
ou igual a 10 e a terceira e ultima parte é o incremento desta variável, sendo essas três
partes separadas por ';' (ponto e virgula). O funcionamento é simples todo o código
dentro desse bloco do 'for' será executado dez vezes. Simples não? Mas você deve ter
algumas perguntas em mente como, por exemplo: porque a variável chama 'i'? o que é
incremento? Vamos as respostas!

Primeiro chama-se 'i' por um motivo simples: convenção. 'i' vem de índice e isso já se
tornou meio que um padrão, mas essa variável pode ter qualquer nome, por exemplo:
contador.
Segundo um incremento nada mais é do que adicionar 1 a uma variável, ou seja, se
uma variável vale 0 (zero) e passa por um incremento logo essa variável vale 1 e se
passa mais uma vez vale 2 e assim por diante. E o que acontece com o decremento é o
inverso, ou seja, se uma variável vale 2 e passar por um decremento agora passa a
valer 1 e assim por diante.
Respondidas as questões veja um exemplo pratico do loop 'for':

for (int i = 0; i < 20; i++)
{
int res = i * 2;
MessageBox.Show (res.ToString());
}

Veja que embora simples mostra bem o funcionamento do 'for', neste caso vai mostrar
na tela o valor de 'i' multiplicado por 2 enquanto 'i' for menor que 20.


Laço while

De modo diferente do loop 'for' (embora o objetivo seja o mesmo, ou seja, repetir a
execução de um código testando uma condição) o loop 'while' é mais simples de ser
entendido, pois sua syntax não requer que você coloque na mesma linha variável de
inicialização, condição e o seu incremento. No loop 'while' apenas colocamos a
condição que queremos testar, veja como fica a syntax:

while (expressão booleana)
{
//instruções
}

Veja como é simples o código. Expressão booleana é uma expressão que sempre
retorna falso ou verdadeiro e a instruções dentro do bloco de código do loop 'while' só
será executada enquanto essa expressão retornar verdadeiro. Veja um exemplo:

int contador = 2;
while (contador != 10)
{
MessageBox.Show (contador.ToString());
contador++;
}

Neste caso temos uma variável chamada contador e seu valor é 2, no nosso loop
'while' testamos se a variável contador é diferente de 10 caso verdadeiro mostramos
na tela o valor atual de contador e o incrementos em 1 e o loop 'while' continuará até
que essa condição se torne falsa.

Cuidado: não esqueça de incrementar ou se assegurar que sua condição pode ser falsa
em algum momento, pois caso contrario você entrará em um loop infinito, ou seja, a
condição nunca será falsa e o loop vai continuar até travar a máquina.

Até a próxima.
Take care.

domingo, 11 de julho de 2010

Mini-Curso C# - Parte #4

Salve, salve amigos.

switch... case

A instrução 'switch.. case' prove um caminho mais limpo para escrever múltiplas
instruções 'if..else', veja o exemplo:

switch(a)
{
case 1:
   MessageBox.Show ("a é igual a 1");
   break;

case 2:
   MessageBox.Show ("a é igual a 2")
   break;
default:
   MessageBox.Show ("a não é igual a 1 e nem igual a 2");
break;
}



Colocamos a variável 'a' dentro do 'switch' e dentro de nosso código vamos verificando
com o 'case' o valor de nossa variável. No nosso código temos duas possibilidades para
caso seja 1 e caso seja 2 e ainda temos a opção 'default' que é conhecida como 'case
else', ou seja, se nenhum 'case' for atendido ela será executada, lembrando que é
opcional colocar o 'default'.

Até a próxima.

Take care

Mini-Curso C# - Parte #3

Salve, salve amigos

Operadores Aritméticos
Em C# temos os seguintes operadores aritméticos:


Operadores de atribuição
Em C# temos os seguintes operadores de atribuição:


Operadores relacionais
Em C# temos os seguintes operadores relacionais:


Tipos de variáveis:
A seguinte tabela mostra os tipos do C# com sua referencia no Framework.
Os tipos da tabela abaixo são conhecidos como tipos internos ou Built-in.


Cada tipo no C# é um atalho para o tipo do Framework. Isso quer dizer que se
declararmos a variável desta forma:

string nome;
 

ou dessa forma
 

System.String nome;

teremos o mesmo resultado. O atalho serve apenas para facilitar na hora de
desenvolver a aplicação.
A seguinte tabela mostra os tipos de variáveis e os valores possíveis de se armazenar
em cada uma delas.



Estrutura de Decisão

Basicamente temos dois tipos básicos de instruções de decisão:
1. if... else;
2. switch.. case.

if... else
A instrução 'if...else' é usada para executar blocos de código condicionalmente
através de uma expressão Booleana ( verdadeiro ou falso ). A clausula 'else' é opcional
e seu conteúdo será executado somente se o resultado da expressão booleana for
false ( falso ). Veja o exemplo:

If ( a == 5 )
    MessageBox.Show("a é igual a 5");
else
    MessageBox.Show ("a é diferente de 5");


No código acima na instrução 'if' ( Se ) fazemos uma verificação muito simples, onde
testamos se 'a' é igual a '5' caso seja verdadeiro ( true ) o código logo abaixo é
executado, ou seja: 'System.Console.WriteLine('a é igual a 5');'. Caso o resultado dessa
expressão lógica seja falso, ou seja, 'a' não seja igual a '5' o código do bloco 'else' (se
não) será executado, nesse caso: "System.Console.WriteLine('a é diferente de 5');".

Para casos onde nosso código tem mais de uma linha ( o que é mais comum ) devemos
usar as chave '{' e '}' para delimitarmos os blocos if e/ou else, veja:

if ( a == 5 && b != 2 )
{
   MessageBox.Show ("a é igual a 5");
   MessageBox.Show ("b é diferente a 5");
}

Neste caso temos uma verificação composta, ou seja, verificamos duas condições se 'a'
é igual a '5' E(&&) se 'b' é diferente de '2' essa condição só resultará em verdadeiro
caso as duas condições sejam verdadeiras pois estamos usando o operador lógico '&&'.

else if
A instrução 'else if' é usada quando temos varias condições e pra cada condição temos
códigos diferentes, ou seja, fazemos coisas diferentes para cada caso veja o exemplo:

if ( a== 1)
{
// perceba que mesmo com uma linha só de código eu posso usar os delimitadores
   MessageBox.Show ("a é igual a 1");
}
   else if ( b ==2 )
{
   MessageBox.Show ("b é igual a 2");
}
   else if( c ==3 )
{
   MessageBox.Show ("c é igual a 3");
}
else
{
   MessageBox.Show ("Faz algo caso nenhuma condição seja atendida");
}


Podemos 'traduzir' o 'else if' para 'se caso'.
A instrução 'if' ainda pode ser emulada de forma mais simples através do operador '?'
(interrogação) veja:

int a = (expressãoBooleana) ? 1 : 0;
Nesse caso se a expressão Booleana seja verdadeira ( true ) a variável 'a' receberá o
valor '1' e caso seja falso ( false ) a variável recebe '0'. Veja um exemplo prático:

MessageBox.Show (a == 5 ? "Sim a é igual à 5" : "Não a é diferente de 5");
Se 'a' for igual a 5 o resultado será: "Sim a é igual à 5", caso 'a' não seja igual a '5' o
resultado será: "Não a é diferente de 5".


Até a próxima.

Take care

Novo Delphi Prism 2011

Salve, salve amigos,

O meu amigo Andreano Lanusse, postou a apresentação do Novo Delphi Prism 2011. A ferramenta esta fantástica. Veja algumas das novidades:

Desenver em Cross Platform para Windows e Mac OS X;
Suporte a.NET 4.0 e Silverlight Technologies;
Suporte baseado no Visual Studio 2010 Shell IDE;
Novidades na linguagem e compilador;
Importe ou Copiar/Colar código C# como código Delphi Prism;
Crie aplicações para iPhone, iPad OS como MonoTouch;
Delphi Prism 2011 rodando em MonoDevelop no Mac OS X;


Veja apresentação abaixo.


Take care