Beispiel Code Arrays Tutorium 23.10.2018

string name = "alf";
string name2 = "bert";
string name3 = "carl";
string name4 = "don";
string name5 = "iwas";
Console.WriteLine( $"{name} {name2} {name3} {name4}" );
//Deklaration & Initalisierung
string[] names = new string[10]; // Initalisierung LEER
string[] names02 = new string[3] { "alf", "bert", "carl" }; ///Initalisierung mit Werten
string[] names03 = { "alf", "bert", "carl" }; // Kurzschreibweise
names02 = new string[4] { "", "", "", "" };
// names02 = { "", "", "", "" };  // Error !
// Schreibender Zugriff auf Array
names[0] = "alf";
names[1] = "bert";
names[2] = "carl";
names[3] = "don";
names[4] = "iwas";
names[8] = "fred";
// Lesende Zugriff
//Console.WriteLine(names[3]);
for (int i = 0; i < names.Length; i++) {
    Console.WriteLine( names[i] );
}

double num = 1.0E-9;
Console.WriteLine( num + 0.1 );

Quadratzahlen ausgeben

// Erstellen Sie ein Programm, dass eine 
// beliebige positive Zahl einliest und 
// dann alle Quadratzahlen ausgibt, die kleiner 
// sind als diese Zahl.
//  Beispiel: Eingabe: 30, Ausgabe: 1, 4, 9, 16, 25
uint num = 30; 
int quad = 1;
int basenum = 2;
while (quad < 30) {
    Console.WriteLine("quad: " + quad);  // Auf Reihenfolge achten,
    quad = basenum * basenum; // Berechnung nach Ausgabe
    basenum++;
};

ISBN Check Digit

string isbn = "3-499-13599-5";
//string isbn = "3-446-19313-8";
// String bereinigen / reduzieren
string cleaned = "";
for (int i = 0; i < isbn.Count(); i++) {
    if (isbn[i] != '-') {
        cleaned += isbn[i];
    }
}
//Console.WriteLine(cleaned);
// Pruefziffer berechnen
int sum = 0;
for (int i = 0; i < cleaned.Count() - 1; i++) {
    sum += (cleaned[i] - 48) * (i + 1); // Char Int Konvertierung !!
}
//Console.WriteLine("Sum: " + sum);
int checkdigit = sum % 11;
Console.WriteLine("pruefziffer " + checkdigit);

Print Array

static void PrintArray(int[] numbers) {
    Console.Write("{ ");
    foreach (int num in numbers) {
        Console.Write(num + " ");
    }
    Console.WriteLine("}");
}
static void PrintArray(string[] texts) {
    Console.WriteLine("{");
    for (int i = 0; i < texts.Count(); i++) {
        Console.Write("  {0} => \"{1}\" \n", i, texts[i]);
    }
    Console.WriteLine("}");
}

Bubble Sort

// Create Array
int[] numbers = new int[10];
// Fill array with random numbers
Random dice = new Random();
for (int i = 0; i < numbers.Count(); i++) {
    numbers[i] = dice.Next(10, 100);
}
PrintArray(numbers);
Console.WriteLine("Bubble Sort Start");
bool isSorted = false;
do {
    isSorted = true; // End outer loop if no sort necessary
    for (int i = 0; i < numbers.Count() - 1; i++) {
        // If values need to be sorted
        if (numbers[i] > numbers[i + 1]) {
            // Swap values
            int temp = numbers[i];
            numbers[i] = numbers[i + 1];
            numbers[i + 1] = temp;
            isSorted = false; // Continues outer loop
        }
    } // End inner for loop
    PrintArray(numbers);
} while (isSorted == false);
Console.WriteLine("Bubble Sort Done");
PrintArray(numbers);

Reference- vs. Value-Types

class Program {
    static void Main(string[] args) {
        Test t01 = new Test();
        t01.num = 2;
        Test t02 = t01;
        t01.num = 4;
        Console.WriteLine(t02.num);
    }
}
class Test {  /* Tausche class-keyword gegen struct-keyword*/
    public int num;
}

Random Number

// Parameters:
//   minValue:
//     The inclusive lower bound of the random number returned.        
//   maxValue:
//     The exclusive upper bound of the random number returned. 
class MyClass{
    static Random random = new Random(); // Do not declare within method !
    static int GetRandomNumber(int min, int max) {    
        return random.Next(min, max);
    }
}

Print 2D Array

private static void Print(int[,] array) {
    Console.Write( $"  | " );
    for (int i = 0; i < array.GetLength( 1 ); i++) {
        Console.Write( $"{i,3} " );
    }
    Console.WriteLine( );
    Console.Write( $"----" );
    for (int i = 0; i < array.GetLength( 1 ); i++) {
        Console.Write( $"----" );
    }
    Console.WriteLine( );
    for (int i0 = 0; i0 < array.GetLength( 0 ); i0++) {
        Console.Write( $"{ i0,2 }| " );
        for (int i1 = 0; i1 < array.GetLength( 1 ); i1++) {
            Console.Write( $"{array[i0, i1],3} " );
        }
        Console.WriteLine( );
    }
    Console.WriteLine( );
}

Fill 2D Array Random Numbers

class Program {
    static Random r = new Random( ); // Declare outside method!
    static int GetRandomNumber() {
        return r.Next( 1, 100 ); // returns 1-99
    }
    static int[,] Fill2DArray(int[,] array) {
        for (int i0 = 0; i0 < array.GetLength( 0 ); i0++) {
            for (int i1 = 0; i1 < array.GetLength( 1 ); i1++) {
                array[i0, i1] = GetRandomNumber( );
            }
        }
        return array;
    }
}