Drop hier links of afbeeldingen om ze aan de editor toe te voegen.

In de vorige activiteit maakten we een lege array met new int[5] en vulden we hem daarna element per element. Vaak ken je de inhoud echter al op voorhand. Dan kan je de array meteen vullen bij de declaratie.

Een array meteen vullen

Je zet de waarden gewoon tussen accolades, gescheiden door komma’s:

int[] x = { 1, 2, 3 };

C# telt zelf hoeveel waarden er staan en maakt een array van die grootte aan. In dit voorbeeld is x.Length dus 3, met x[0] gelijk aan 1, x[1] gelijk aan 2 en x[2] gelijk aan 3.

Dit werkt voor elk type. Een rij namen bewaar je bijvoorbeeld zo:

string[] dagen = { "ma", "di", "wo", "do", "vr" };

Een uitgewerkt voorbeeld: decimaal naar binair

We gebruiken een array met vaste inhoud om een getal kleiner dan 1024 om te zetten naar zijn binaire vorm. Het idee: elk getal is een som van machten van 2. We bewaren de machten van 2 (van groot naar klein) in een array:

int[] machtenVan2 = { 512, 256, 128, 64, 32, 16, 8, 4, 2, 1 };

Deze array bevat 10 elementen: de tien machten van 2 van \(2^9 = 512\) tot \(2^0 = 1\).

We lopen met een foreach-lus over elk element. Voor elke macht doen we een gehele deling van het getal door die macht. Levert die deling als resultaat 1 op, dan zit die macht in het getal en trekken we ze af. Levert de deling 0 op, dan zit die macht er niet in. Het resultaat van elke deling (0 of 1) is precies het bijbehorende bit.

int[] machtenVan2 = { 512, 256, 128, 64, 32, 16, 8, 4, 2, 1 };
Console.Write("Geef een getal: ");
int invoer = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Het getal in binaire vorm is");
foreach (int macht in machtenVan2)
{
    int resultaat;
    resultaat = invoer / macht;
    if (resultaat == 1)
    {
        invoer -= macht;
    }
    Console.Write(resultaat);
}

We gebruiken hier Console.Write in plaats van Console.WriteLine. Write zet de uitvoer op dezelfde regel, zonder naar een nieuwe regel te springen. Zo komen de tien bits netjes naast elkaar te staan.

Geef je hier 15 als invoer, dan is 15 de som van 8 + 4 + 2 + 1. De binaire vorm is dan 1111, voorafgegaan door voorloopnullen omdat de array tien elementen heeft:

Geef een getal: 15
Het getal in binaire vorm is
0000001111

Op die manier bepalen we, machtje per machtje, welke machten van 2 in het getal aanwezig zijn, en bouwen we de binaire voorstelling op.