Aula ‐ 26‐05‐2025 - diegoneri/aulas-lp-csharp GitHub Wiki

Console.Clear();
// Vetores: declaração, atribuição e acesso
Console.WriteLine("--Vetores: declaração, atribuição e acesso");
int[] numeros = new int[4];
numeros[0] = 8;
numeros[1] = 3;
numeros[2] = 0;
numeros[3] = -8;

int soma = numeros[0] + numeros[1] +
           numeros[2] + numeros[3];

Console.WriteLine($"Soma: {soma}");

// Inicialização
/*
string[] linguagens = new string[4];
linguagens[0] = "C#";
linguagens[1] = "Python";
linguagens[2] = "Java";
linguagens[3] = "Javascript";
string[] linguagens1 = ["C#", "Python", "Java", "Javascript"];
string[] linguagens2 = new string [] { "C#", "Python", "Java", "Javascript" };
*/

string[] linguagens = { "C#", "Python", "Java", "Javascript" };

Console.WriteLine($"\nLinguagem utilizada: {linguagens[0]}");

// Tamanho de um array
Console.WriteLine($"Nosso array de números possui {numeros.Length} valores");
Console.WriteLine($"Nosso array de nomes possui {linguagens.Length} valores");

// Percorrendo matrizes com laços usando while
int contador = 0;
while (contador < numeros.Length)
{
    Console.WriteLine($"numeros[{contador}] = {numeros[contador]}");
    contador++;
}

contador = 0;
Console.Write("\nNúmeros: | ");
while (contador < numeros.Length)
{
    Console.Write($"{contador + 1}. {numeros[contador]} | ");
    contador++;
}

// Percorrendo matrizes com laços usando for
Console.WriteLine($"\n\n--Linguagens (for)");
for (int i = 0; i < linguagens.Length; i++)
{
    Console.WriteLine($"A {i + 1}ª linguagem é {linguagens[i]}");
}

// Percorrendo matrizes com laços usando for, reverso
Console.WriteLine($"\n\n--Linguagens (for, reverso)");
for (int i = linguagens.Length - 1; i >= 0; i--)
{
    Console.WriteLine($"A {i + 1}ª linguagem é {linguagens[i]}");
}

// Percorrendo matrizes com laços usando foreach
Console.WriteLine("\n--Percorrendo matrizes com laços usando foreach");
foreach (string linguagem in linguagens)
{
    Console.Write($"{linguagem} ");
}

// Matrizes: arrays multidimensionais
Console.WriteLine("\n\n--Matrizes: arrays multidimensionais");
int[,] a2 = new int[3, 4];
a2[0, 3] = 3;

int[,] m2 = {
                { 1, 2, 3, 4 },
                { 5, 6, 7, 8 },
                { 9, 10, 11, 12 },
            };

int itemDesejado = m2[1, 2];
Console.WriteLine($"m2[1, 2] = {itemDesejado}");

// Informações sobre uma matriz
Console.WriteLine("\n\n-- Informações sobre uma matriz");
Console.WriteLine($"Tamanho: {m2.Length}");
Console.WriteLine($"Número de dimensões: {m2.Rank}");
Console.WriteLine($"Limite inferior da primeira dimensão (0): {m2.GetLowerBound(0)}");
Console.WriteLine($"Limite superior da primeira dimensão (0): {m2.GetUpperBound(0)}");
Console.WriteLine($"Limite inferior da segunda dimensão (1): {m2.GetLowerBound(1)}");
Console.WriteLine($"Limite superior da segunda dimensão (1): {m2.GetUpperBound(1)}");

// Percorrendo uma matriz com for
Console.WriteLine("\n\n--Percorrendo uma matriz com for");
for (int i = m2.GetLowerBound(0); i <= m2.GetUpperBound(0); i++)
{
    for (int j = m2.GetLowerBound(1); j <= m2.GetUpperBound(1); j++)
    {
        Console.WriteLine($"m2[{i}, {j}] = {m2[i, j]}");
    }
}
// Percorrendo uma matriz com foreach
Console.WriteLine("\n\n--Percorrendo uma matriz com foreach");
foreach (int item in m2)
{
    Console.Write($"{item} ");
}

// Matrizes irregulares
Console.WriteLine("\n\nMatrizes irregulares");

Console.WriteLine("Selecione um filme: ");
Console.WriteLine("1. Matrix");
Console.WriteLine("2. Senhor dos anéis");
Console.WriteLine("3. Titanic");

int selecao;
while (!int.TryParse(Console.ReadLine(), out selecao))
{
    Console.WriteLine("Informe um número!");
}

string[] filmes =
{
    "Matrix",
    "Senhor dos Anéis",
    "Titanic"
};

Console.Write($"Filme: {filmes[selecao-1]} ");

string[][] generoDosFilmes =
[
    ["Ação", "Ficção Científica" ],
    ["Fantasia"],
    ["Romance", "Baseado em fatos reais"]
];

// Percorrendo uma matriz irregular com for
Console.WriteLine($", gênero(s): ");
string[] generoDoFilmeSelecionado = generoDosFilmes[selecao - 1];
for (int i = 0; i < generoDoFilmeSelecionado.Length; i++)
{
    Console.Write($"{generoDoFilmeSelecionado[i]}, ");
}

// Percorrendo uma matriz irregular com foreach
Console.WriteLine("\n\n--Percorrendo uma matriz irregular com foreach");
foreach (string[] generosDoFilme in generoDosFilmes)
{
    foreach (string generoDoFilme in generosDoFilme)
    {
        Console.WriteLine(generoDoFilme);
    }
}
// Alterando um vetor "in-place"
// Aplicação: entrada de itens em uma lista
// Aplicação: guardar muitos valores
// Aplicação: sorteando valores em uma lista