Você está na página 1de 33

CEFET-RN

Tecnologia em Anlise e Desenvolvimento de


Sistemas

Mtodos, Deciso e Repetio em C#


Prof. Gilbert Azevedo

Referencias Bibliogrficas

Introduction to C# Programming with Microsoft .Net

Microsoft Visual C# 2005 - Passo a passo

George Sheperd, Bookman, 2007

Programao OO com C#

John Sharp, Bookman, 2007

Microsoft Asp.Net Passo a passo

Microsoft Official Course 2609A

Jos Antnio da Cunha Cefet-RN

The new language for Microsoft .Net

Prof. Dr. H. Mssenbck - University of Linz, Institute


for System Software, 2004

Contedo

Mtodos

Escopo

Variveis Booleanas

Operadores Relacionais e Lgicos

Instrues de Deciso: if, if-else, switch, ?

Instrues de Repetio: for, while, do-while

Exerccios

Mtodos

So seqncias nomeadas de instrues

Possuem um nome e um corpo

O nome do mtodo deve ser um identificador significativo


para sua funcionalidade

O corpo do mtodo contm a seqncia de instrues a ser


executada

Os mtodos podem receber dados (parmetros),


retornar dados (retorno) e ter um controle de acesso

[accessModifier] returnType MethodName (parameterList)

{
// Instrues

Exemplo de Mtodo
Assinatura do mtodo
Acesso Retorno

Identificador

Lista de parmetros

public double AreaTriangulo(double b, double h)


{
double area;
Varivel local
area = b * h / 2;
return area;
Resultado retornado
}

Dicas sobre Mtodos

Mtodos podem possuir o mesmo nome se tiverem lista


de parmetros diferentes (sobrecarga)

string ToString();

string ToString(string format);

Mtodos que no possuem retorno utilizam a palavrachave void

void ShowError(string errorMsg);

Os identificadores pblicos devem seguir a notao


PascalCase (iniciais em maisculo) e os privados, a
notao camelCase (primeira inicial em minsculo)

O acesso padro private

Chamando os mtodos

Para chamar um mtodo, utiliza-se a sintaxe


MethodName(argumentList)

MethodName o identificador do mtodo

argumentList a lista de dados enviada para o mtodo

A quantidade e o tipo dos argumentos deve ser


compatvel com a lista de parmetros

O resultado, se existir, pode ser utilizado em uma


expresso

public double AreaTriangulo(double b, double h) { ... }

double area = AreaTriangulo(10, 20);

Escopo

O escopo define a regio do programa na qual um


identificador vlido

class Example {
public void Metodo1() {

int minhaVariavel; // Escopo local

public void Metodo2() {


minhaVariavel = 10; // Erro fora do escopo

Variveis dentro de mtodos possuem o escopo local

Escopo da Classe

Variveis declaradas dentro de uma classe (chamada


campos) possuem o escopo da classe

class Example {

int meuCampo; // Escopo da classe

public void Metodo1() {


meuCampo = 10; // Ok

public void Metodo2() {


meuCampo = 10; // Ok

Instrues de Deciso

Instrues de deciso so freqentemente usadas


em um programa para testar se um comando
deve ou no ser executado

Variveis Booleanas (bool)

Operadores Relacionais

Operadores Lgicos

Instrues if, if-else

Operador condicional ternrio

Instrues switch

If-else aninhados

Variveis Booleanas e Operadores


Relacionais

Variveis booleanas so definidas com a palavra chave


bool

Uma varivel bool pode armazenar os valores true


(verdadeiro) ou false (falso)

Operadores relacionais so utilizados para realizar


comparaes entre dois valores (de tipos compatveis)

O resultado de um operador relacional sempre um valor


booleano. O operador == testa se dois valores so iguais.

bool b;

int i = 10;

b = i == 5; // b recebe falso

Operadores Relacionais do C#
Operao

C#

Operandos

Igual

==

I,R,C,L,S

Diferente

!=

I,R,C,L,S

Maior ou igual

>=

I,R,C

>

I,R,C

<=

I,R,C

<

I,R,C

Maior
Menor ou igual
Menor

Operadores Lgicos do C#
Operao

C#

Operandos

Conjuno (e)

&&

Disjuno (ou)

||

Negao (no)

XeY

X ou Y

no X

Precedncia de Operadores

Operadores unrios

Aritmticos multiplicativos

+, Adio e subtrao

Relacional

*, /, % Multiplicao, diviso e resto

Aritmticos aditivos

! Negao
+, Adio e subtrao
++, Prefixo de incremento e decremento

<, <=, >, >= Menor (igual), maior (igual)


==, != Igual e diferente

Lgico

&&, || E lgico, Ou lgico

Instrues If

Controla a execuo de uma instruo (ou bloco de


instrues) de acordo com uma expresso booleana

if (booleanExpression)
instruo-1; // Executa se verdadeiro

if (booleanExpression)

{
bloco-1; // Executa se verdadeiro

Instrues If-Else

Controla a execuo de duas instrues (ou bloco de


instrues) de acordo com uma expresso booleana

if (booleanExpression)

instruo-1; // Executa se verdadeiro


else
instruo-2; // Executa se falso

Exemplo If-Else

private void button1_Click(object sender, EventArgs e)


{
int x = int.Parse(textBox1.Text);
if (x % 2 == 0) textBox2.Text = "Par";
else textBox2.Text = "mpar";
}

Operador Condicional Ternrio

O operador condicional ternrio ? retorna um valor ou


outro de acordo com uma expresso booleana

result = booleanExpression ? valor-1 : valor-2;

private void button1_Click(object sender, EventArgs e)

int x = int.Parse(textBox1.Text);

textBox2.Text = x % 2 == 0 ? "Par" : "mpar";

Instrues Switch

Controla a execuo de vrias instrues de acordo


com valores de uma expresso de controle que deve
ser inteira ou string

switch(controllingExpression)

case constantExpression : instrues; break;

default : instrues; break;

Regras do Switch no C#

Os rtulos case devem ser expresses constantes

Os rtulos devem ser nicos

Rtulos vazios so permitidos, mas rtulos no vazios


devem encerrar com um break (return ou throw)

O rtulo default opcional

switch(Naipe) {

case "Copas" :

case "Ouros" : Cor = "Vermelho"; break;

case "Paus" : Cor = "Preto"; // Erro - sem break;

case "Espadas" : Cor = "Preto"; break;

If-Else Aninhados

Mtodo que compara duas datas, retornando -1 (data1


menor), 1 (data1 maior) ou 0 (datas iguais)

int dateCompare(DateTime data1, DateTime data2) {


int result;
if (data1.Year < data2.Year) result = -1;
else if (data1.Year > data2.Year) result = 1;
else if (data1.Month < data2.Month) result = -1;
else if (data1.Month > data2.Month) result = 1;
else if (data1.Day < data2.Day) result = -1;
else if (data1.Day > data2.Day) result = 1;
else result = 0;
return result;
}

Instrues de Repetio

Instrues de repetio so freqentemente


usadas em um programa para repetir comandos

Operadores de atribuio compostos

Repeties while

Repeties for

Repeties do-while

break, continue

Operadores de atribuio
compostos

So utilizados como atalho para combinar operadores


aritmticos com uma atribuio

Operao

Operador composto

varivel = varivel * nmero

varivel *= nmero

varivel = varivel / nmero

varivel /= nmero

varivel = varivel % nmero

varivel %= nmero

varivel = varivel + nmero

varivel += nmero

varivel = varivel nmero

varivel = nmero

Instruo While

Controla a repetio de instrues enquanto uma


expresso booleana for verdadeira

while (booleanExpression)
instruo-1; // Repete se verdadeiro

while (booleanExpression)

{
bloco-1; // Repete se verdadeiro

Dicas sobre While

Se a expresso booleana for falsa no primeiro teste, a


instruo no executada nenhuma vez

A expresso booleana deve ser falsa em um tempo


finito

Ex: lao de 1 a 10 com while

int i = 1;

while (i <= 10) {

// Faa alguma coisa

i++;

Instruo For

De forma anloga ao while, controla a repetio de


instrues enquanto uma expresso booleana for
verdadeira

inicializao;

while (booleanExpression) {

instrues;

atualizao da varivel de controle;

for (inicializao; booleanExpression; atualizao da


varivel de controle) {
instrues

Exemplos de For

Ex: lao de 1 a 10 com for

Ex: lao com duas variveis de controle

for (int i = 1; i <= 10; i++) {


// Faa alguma coisa
}
for (int i = 0, j = 10; i <= j; i++, j--) {
// Faa alguma coisa
}

Ex: lao sem inicializao

int i = 1;
for (; i <= 10; i++) {
// Faa alguma coisa
}

Instruo Do-While

De forma anloga ao while e ao for, controla a


repetio de instrues enquanto uma expresso
booleana for verdadeira

A diferena que as instrues so realizadas pelo


menos uma vez, pois o teste ocorre no final

do

instruo-1; // Repete se verdadeiro

while (booleanExpression);

do {

bloco-1; // Repete se verdadeiro


} while (booleanExpression);

Exemplo de While

Ex: lao de 1 a 10 com do-while

int i = 1;

do

// Faa alguma coisa

i ++;

while (i <= 10);

Instrues Break e Continue

A instruo break utilizada para sair do corpo de uma


instruo de repetio

A instruo continue faz com que a prxima iterao do


lao seja executada (re-avaliando a expresso)

int i = 1;

while (true) {

// Faa alguma coisa

i++;

if (i != 11) continue;

else break;

Exerccios

1. Ler quatro nmeros inteiros, calcular a soma dos nmeros


pares e a soma dos nmeros mpares.

2. Calcular as razes reais da equao aX2 + bX + c = 0,


dados a, b e c.

3. Ler trs valores e dizer se eles formam um tringulo. Caso


afirmativo, dizer seu tipo (equiltero, issceles ou escaleno).

4. Ler trs valores e apresent-los em ordem crescente.

5. Ler o nmero do ms (1 janeiro; 2 fevereiro; ...; 12


dezembro) e identificar em que trimestre o ms est includo.

Exerccios

6. Mostrar os nmeros de 100 at 200 variando de 10 em 10.

7. Mostrar os mltiplos positivos de 7 menores que 100.

8. Calcular e mostrar a soma dos termos da srie: 6, 9, 12,


15, ..., 60.

9. Calcular e mostrar a soma dos termos da srie: 7, 9, 11,


13, ..., 99.

10. Ler um conjunto de valores inteiros positivos e


determinar a quantidade de nmeros pares e mpares
digitados.

Exerccios

11. Ler dois valores e calcular o MDC e o MMC entre eles.

12. Calcular o valor de S, dado abaixo


1 3 5 7
99
S ...
1 2 3 4
50

13. Imprimir os N primeiros termos da srie de Fibonacci,


dada por: 1, 1, 2, 3, 5, 8, 13, ..., ou seja, a srie inicia com
dois valores iguais a um e cada termo subseqente dado
pela soma dos dois anteriores.

14. Calcular o valor de S, dado abaixo:

S = 10 - 15 + 20 - 25 + ... + 100

15. Ler um nmero e verificar se ele ou no um nmero


primo.