04 - C# laços de repetição, vetores e matrizes v1.0

28
César Augusto Pessôa

Transcript of 04 - C# laços de repetição, vetores e matrizes v1.0

César Augusto Pessôa

Sumário

Objetivos

Condições if... else

Operadores unários

Laços de repetição while

do while

for

switch

Vetores e Matrizes

A estrutura foreach

Exercícios práticos no Visual Studio

Objetivos

Apresentar aos alunos as estruturas de

repetição da linguagem C#, utilizando

exemplos práticos e comparando-as com as

estruturas de repetição utilizadas no software

VisualG.

Realizar atividades práticas aplicando os

laços de repetição em estruturas de dados

complexas (vetores e matrizes).

Condições – if... else

C# Portugol

if (numero >=10)

{

Console.WriteLine(“a”);

}

else

{

Console.WriteLine(“b”);

}

SE (numero >= 10) FACA

ESCREVAL(“a”)

SENAO

ESCREVAL(“b”)

FIMSE

Operadores unários

Assim como existem os operadores

aritméticos e operadores lógicos, a linguagem

C# também aceita a utilização de operadores

unários.

A vantagem de utilizá-los é o ganho de

desempenho e redução de código devido a

sua forma compacta.

Operadores unários

Operador Utilização

+ Números positivos

- Números negativos

! Negação booleana

++ Pré-incremento: a variável recebe o incremento e

depois é verificada. Exemplo: ++x

++ Pré-incremento: a variável é verificada e depois recebe

o incremento. Exemplo: y--

-- Pré-decremento: a variável recebe o decremento e

depois é verificada. Exemplo: --y

-- Pré-decremento: a variável é verificada e depois

recebe o decremento. Exemplo: x++

(type)<variável> Operador para apresentação de dados conforme um

tipo especificado. Exemplo (int)nome.

Laços de repetição

São blocos de código que, seguindo uma

determinada condição, são executados por

mais de uma vez.

São especialmente úteis em situações onde

uma rotina deve se repetida de forma

incremental ou, até mesmo, quando o

sistema aguarda uma alteração de condição

ou comportamento do usuário para continuar

a sua execução.

Laços de repetição - Exemplos

Criação de um menu que somente aceite que o usuário selecione uma entre quatro opções.

Leitura de um cadastro de 11 jogadores para um time de futebol.

Impressão de 200 certificados idênticos, com apenas alteração do nome do aluno.

Controle de tempo ou condição para execução de uma tarefa/evento.

Laços de repetição - Exemplos

Escrita e leitura de dados em um vetor ou matriz.

Leitura para importação de informação em uma lista de arquivos.

Busca de informações ou palavras chave em um arquivo.

Criação de algoritmos de pesquisa inteligente em bases de dados.

Laços de repetição – while

C# Portugol

while (media < 7)

{

Console.WriteLine(“...”);

}

ENQUANTO (media < 7)

FACA

ESCREVAL(“...”)

FIMENQUANTO

Laços de repetição – do while

C# Portugol

do

{

Console.WriteLine(“...”);

}

while(n1 % 2 == 0);

REPITA

ESCREVAL(“...”)

ATE (n1 % 2 = 0)

Laços de repetição – for

C# Portugol

for (int cont = 0; cont < 10;

cont+1)

{

Console.WriteLine(cont + 1);

}

/*

Em C# não é necessário declarar

a varíavel contador, isto é feito

dentro do próprio for.

*/

PARA cont DE 1 ATE 10 FACA

ESCREVAL(cont + 1)

FIMPARA

Laços de repetição – switch

C# Portugol

switch (opcao)

{

case 1:

Console.WriteLine(“1");

break;

...

default:

Console.WriteLine(“...");

break;

}

ESCOLHA opcao

CASO "1"

ESCREVAL(“1”)

...

FIMESCOLHA

Vetores

Vetor ou array, em inglês, é uma estrutura que permite armazenar informações de forma sequenciada.

Por exemplo, é possível criar uma lista de nomes e armazená-los em uma única variável do tipo vetor, contendo um índice para identificar cada um dos seus elementos.

Importante: O índice de um vetor sempre começa na posição 0.

Um vetor é um objeto e, portanto, deve ser instanciado por meio do comando new.

Vetor de nomes

João Tiago Thaís Yasmin Maria Carlos

0 1 2 3 4 5

Abaixo existe um vetor contendo 6 nomes.

Os nomes são armazenados de forma ordenada, como em uma lista.

Todos os itens podem ser acessados por meio do índice que determina a posição do elemento dentro do vetor.

Vetores

C# Portugol

string[] nomes = new string[6];

...

for (int i = 0; i < 6; i++)

{

nomes[i] = Console.ReadLine();

}

for (int i = 0; i < 6; i++)

{

Console.WriteLine(nomes[i]);

}

nomes : vetor[1..6] de caractere

...

para i de 1 ate 6 faca

leia(nomes[i])

fimpara

para i de 1 ate 6 faca

escreval(nomes[i])

fimpara

Matrizes

Uma matriz nada mais é do que uma estrutura

encadeada de vetores, ou seja, se um vetor

permite a criação de uma lista de variáveis do

mesmo tipo, uma matriz, permite a criação de

uma lista de vetores do mesmo tipo.

Visualmente uma matriz se parece com uma

tabela, possuindo elementos que são acessados

por meio das coordenadas de suas linhas e

colunas – como em uma planilha eletrônica.

Matriz de alunos e notas

Nome do aluno Nota do aluno

João 8,9

Tiago 9,75

Thaís 9,25

Yasmin 10

Maria 8,5

Carlos 8,0

Matriz (acesso a elementos)

Nome do aluno Nota do aluno

[0,0] [0,1]

[1,0] [1,1]

[2,0] [2,1]

[3,0] [3,1]

[4,0] [4,1]

[5,0] [5,1]

Matrizes

C# Portugol

string[,] nomesNotas = new string[2,6];

...

for (int i = 0; i < 6; i++)

{

for (int j = 0; j < 2; j++)

{

nomes[i,j] = Console.ReadLine();}

}

}

nomes : vetor[1..2,1..6] de caractere

...

para i de 1 ate 6 faca

para j de 1 ate 2 faca

leia(nomes[i,j])

fimpara

fimpara

Matrizes

C# Portugol

string[,] nomesNotas = new string[2,6];

...

for (int i = 0; i < 6; i++)

{

for (int j = 0; j < 2; j++)

{

nomes[i,j] = Console.ReadLine();}

}

}

Criação de uma matriz de duas dimensões, ou seja, linhas e colunas.

O laço for está percorrendo cada uma das 6 linhas e, para cada linha, percorre as duas colunas.

Para controle desta navegação são utilizadas as variáveis i e j

Laços de repetição – foreach

O termo foreach pode ser traduzido de forma livre como “para cada”.

Utilizado para percorrer coleções e listas sem a necessidade de incrementos ou decrementos.

Especialmente útil para realizar a leitura em coleções cujo tamanho é desconhecido.

Não necessita de uma condição de validação booleana (lógica) para terminar. O laço será abandonado automaticamente ao atingir o fim da coleção.

Laços de repetição – foreach

string[] alunos = new string[6];

...

for (int i = 0; i < 6; i++)

{Console.WriteLine("Informe o nome do " + (i + 1) + "º aluno:");

alunos[i] = Console.ReadLine();

}

foreach (string aluno in alunos)

{

Console.WriteLine(aluno);

}

Laços de repetição – foreach

string[] alunos = new string[6];

...

for (int i = 0; i < 6; i++)

{

Console.WriteLine("Informe o nome do " + (i + 1) + "º aluno:");

alunos[i] = Console.ReadLine();

}

foreach (string aluno in alunos)

{

Console.WriteLine(aluno);

}

Criação do vetor de string, já instanciado com 6 posições.

O laço for irá percorrer todos os 6 elementos do vetor e preenchê-los com as informações lidas do console.

O laço foreach irá percorrer todos os elementos do vetor alunos, independentemente de seu tamanho. Isso ocorre porque foi definida uma variável do tipo string, chamada aluno, que representará o elemento atual do vetor após cada passagem pelo laço.

Agradecimentos

Find Icons

http://findicons.com

Iconfinder

https://www.iconfinder.com

Dúvidas?

César Augusto Pessôa

[email protected]