Programação C# + ASP.NET
Prof. MSc.
Daniel Menin Tortelli
e-mail:
danielmenintortelli@gmail.com
Escopo das Declarações de Variáveis
• O escopo de uma declaração é a parte do programa que
pode referenciar a entidade (variável/objeto) declarada pelo
seu nome.
• Diz-se que a entidade está no escopo para essa parte do
programa.
• Um erro de compilação ocorre quando uma variável local
(com o mesmo nome) é declarada mais de uma vez em um
método.
Escopo das Declarações de Variáveis
• As regras básicas de escopo são:
O escopo de uma declaração de parâmetro é o corpo do
método em que a declaração aparece.
O escopo de uma declaração de uma variável global vai do
ponto que a declaração aparece até o final desse bloco.
O escopo de uma declaração de uma variável local que
aparece na seção de inicialização do cabeçalho de uma
instrução FOR é o corpo de uma instrução FOR com as
outras expressões do cabeçalho.
Gerando Números Aleatórios
• A geração de números aleatórios pode ser introduzido
através da classe Random (inclusa no .NET Framework).
• Os objetos da classe Random podem produzir valores
aleatórios do tipo int.
• O intervalo de valores pode ser negativo.
• O intervalo de valores é calculado como:
Gerando
Números
Aleatórios
Gerando Números Aleatórios – Exercício 1
1 – Utilizando números aleatórios, crie um programa em C#
que simule o lançamento de um dado (de 6 faces), durante
um quantidade x de vezes que será definida pelo usuário no
início do programa.
• Exiba o valor do dado a cada lançamento.
• Faça um somatório dos valores de cada face a cada
lançamento e exiba esse valor no final da execução do
programa.
Gerando Números Aleatórios – Exercício 2
• Gerar 20 números aleatórios entre (-5, 6).
• Mostrar os valores gerados.
• Contar e mostrar os valores pares.
• Contar e mostrar os valores ímpares.
• Contar e mostrar os valores maiores que zero.
• Cuidar o caso do zero (não é par, nem ímpar).
• Obs.: Ao mostrar cada valor par ou ímpar, mostrar
uma mensagem ao lado dizendo se o valor é
Gerando Números Aleatórios – Exercício 3
• Faça um algoritmo que simule a geração de 6
números aleatórios que serão a aposta para a Mega
Sena.
• O intervalo dos valores é de 1 a 60. Caso o valor
gerado já tenha saído, faça com que o programa
gere outro número até que sejam gerados 6
números distintos.
Arrays
• Um array é um grupo de variáveis que
contém valores que são todos do mesmo
tipo.
• Os tipos podem ser divididos em duas
categorias:
– Tipos primitivos (int, float, string, double...);
– Tipos por referência (objeto);
Declarando e criando Arrays
• Os arrays ocupam espaço na memória, assim como as
variáveis.
Declarando e criando Arrays
• Declarando 12 variáveis
para usar no programa...
mas, e se fossem 1000?!?!?!
Declarando e criando Arrays
• Quando um array é criado, cada elemento do array
recebe um valor padrão:
– Zero
para os elementos numéricos de tipo primitivo (int, float,
double...);
– False
para elementos do tipo
boolean
;
– Null
para referências de objetos de classes (qualquer tipo
não-primitivo).
• Um programa pode declarar arrays de qualquer tipo.
– Por exemplo, todo elemento de um array int é um valor int e
todo elemento de um array String é uma referência a um objeto
Exercícios 1
Crie um programa em C# que solicite ao usuário a
digitação de 10 números inteiros.
•
Os números digitados devem ser armazenados
em um array de inteiros.
•
Antes de armazenar o número no array,
certifique-se que o número digitado certifique-seja maior do que zero.
Caso contrário, solicite ao usuário que insira um
número válido novamente.
•
No final mostre a média de todos os elementos do
array.
Exercícios 2
Utilize um array unidimensional de inteiros de 5
elementos para resolver o seguinte problema:
– Escreva um aplicativo que solicite a inserção de números
que estejam apenas no intervalo de 10 a 50.
– Enquanto cada número é inserido, armazene-o no array
apenas se ele NÃO for um número duplicado dentro do
array. Caso for, exiba uma mensagem mostrando a
posição do array que encontra-se o número duplicado e
solicite ao usuário a inserção de um novo valor.
– Repita esse processo até que o array contenha 5
elementos diferentes armazenados.
Exercícios 3
Escreva um programa em C# para ler um array X de
10 elementos inteiros.
Logo após copie os elementos do array X para um
array Y fazendo com que o 1º elemento de X seja
copiado para o 10º de Y, o 2º de X para o 9º de Y e
assim sucessivamente.
Exercícios 4
• Escreva um programa em C# para ler um
array A de 10 elementos inteiros e um
valor X.
• A seguir imprimir os índices do array A em
que aparece um valor igual a X.
Exercícios 5
• Escreva um programa em C# para ler um
array A de 10 elementos inteiros e um
valor X.
• A seguir imprimir "ACHEI" se o valor X
existir em A e "NÃO ACHEI" caso
Exercícios 6
• Escreva um programa em C# para ler um
array A de 10 elementos e um valor X.
• Copie para um array S (sem deixar
elementos vazios entre os valores
copiados) os elementos de A que são
maiores que X.
Exercícios 7
• Escreva um programa em C# para ler um
array de 10 elementos inteiros.
• Excluir o 1º elemento do array deslocando
os elementos subseqüentes de uma
posição para o inicio.
• Imprimir o array após a retirada do
primeiro elemento.
Exercícios 8
• Escreva um programa em C# para ler um array X de
10 elementos e um valor P (aceitar apenas valores
entre 0 e 9) que representa a posição de um elemento
dentro do array X.
• Imprimir o valor do elemento que ocupa a posição
informada.
• Logo após excluir esse elemento do array fazendo
com que os elementos subseqüentes (se houverem)
sejam deslocados de 1 posição para o inicio.
Exercícios 9
• Escreva um programa em C# para ler um array R
(de 5 elementos) e um array S (de 10 elementos).
• Gere um array X que possua os elementos
comuns a R e a S. Considere que pode existir
repetição de elementos no mesmo array.
• Nesta situação somente uma ocorrência do
elemento comum aos dois deve ser copiada para
o array X.
Exercícios
Modifique o programa anterior:
-
Crie a função “AcharMaiorValorPar(int[] array)”,
cuja finalidade é retornar o maior elemento par
encontrado dentro do array passado como
parâmetro da função.
- Exiba uma mensagem mostrando o valor
encontrado.
Alterando o
Alterando o Tamanho do Array
• Embora os arrays sejam declarados com um tamanho
fixo, é possível modificar seu tamanho inicial utilizando o
método Resize.
• O método cria um novo array com o novo tamanho
especificado e copia todo o conteúdo do array antigo.
• Se o novo tamanho for menor do que o tamanho atual,
parte do conteúdo será perdido.
int
[] newArray =
new int
[
5
];
Usando
foreach
para
percorrer e acessar os
Usando
foreach
•
A instrução foreach processa os elementos na ordem retornada pela matriz ou
enumerador do tipo de coleção que normalmente vai do elemento 0 ao último.
•
As instruções inseridas continuam a ser executadas para cada elemento no array
ou na coleção.
•
Após a iteração ter sido concluída para todos os elementos na coleção, o controle
é transferido para a próxima declaração que segue o bloco de foreach.
•
Em qualquer ponto dentro do bloco de foreach, você pode quebrar o loop usando
a palavra-chave
break
, ou pular para a próxima iteração no loop usando a
Introdução a Consultas
Consultas LINQ
•
Uma query (consulta) é uma expressão que recupera dados de um fonte de
dados.
•
Em uma consulta LINQ, você está sempre trabalhando com objetos. Você usa a
mesma codificação de padrões básicos para a query e transformar dados em
documentos XML, bases de dados SQL, ADO.NET Datasets,coleções .NET, e
qualquer outro formato para o qual um provedor LINQ esteja disponível.
•
Todas as operações de consulta de LINQ consistem em três diferentes ações:
1. Obtenha a fonte de dados. 2. Criar a consulta.
Desafio 1
Faça um programa que:
1) Solicite a entrada de dois números (limite inferior e limite superior) que representam o intervalo a ser usado na função random. O programa deve se certificar que o intervalo inferior seja menor que o intervalo superior. Caso contrário, o usuário deve digitar os limites novamente.
2) Em seguida, o programa solicita a quantidade de números aleatórios a serem guardados e gerados em um array de inteiros. A quantidade deve ser menor que os valores possíveis dentro do intervalo e devem ser únicos dentro do array.
3) Após, imprimir o array na ordem em que os números foram gerados, bem como, a quantidade de tentativas que foram necessárias para gerar os números.
4) Imprima também quantos números repetidos foram gerados. 5) Imprima o array em ordem crescente. (Use o Linq)
6) Imprima todos os elementos pares maiores que a metade do intervalo.
7) Crie uma função recursiva que calcule e mostre o fatorial do menor número do array.