Kleine Algorithmen erklären

  • Hi Leute,

    habe jetzt schon länger mit C nichts mehr gemacht und deshalb bin ich mir jetzt etwas unsicher.

    Also ich habe ein paar ganz kleine Algorithmen die ich kurz erklären möchte.

    Code
    int[] algA (int j) {
    int[] myAr = new int[6];
    myAr[0] = j;
    myAr[1] = myAr[0] * j;
    myAr[2] = myAr[1] * j;
    myAr[3] = myAr[2] * j;
    myAr[4] = myAr[3] * j;
    myAr[5] = myAr[4] * j;
    return myAr;
    }

    Hier wird ein Array mit 6 (0-5) Speicherzellen definiert. Und jede bekommt als Wert das Quadrat der vorherigen zugewiesen.
    Ausgegeben wird die 6 oder? Bin mir gar nicht sicher.

    Hier werden die Multiplikationen den einzelnen Arrays zugewiesen. Aber welchen Sinn macht die Ausgabe?

    Code
    int algC (int i) {
    int result = 0;
    if (i == 0)
    result = 0;
    if (i < 0)
    result = -1;
    if (i > 0)
    result = 1;
    return result;
    }

    Also bei Eingabe i=0=Ausgabe, Eingabe kleiner also 0, dann wird -1 ausgegeben, bei Eingabe>0 wird 1 ausgegeben.

    Code
    Betrachten Sie nur Eingabewerte k > 0.
    int[] algD (int k){
    int[] bar = new int[k];
    for (int i = 0; i < k; i++) {
    bar[i] = i * i;
    }
    return bar;
    }

    Hier wird ein Array mit k bzw. i Zellen definiert und jeder wird das Quadrat von i zugewiesen, also Zelle 1 wird 1*1=1 zugewiesen, der 2. Zelle 2*2=4 usw...
    Was return bar ausgibt weiß ich nicht, wie bei dem 1. Code.
    Oder wird damit einfach der neue Inhalt vom Array bar an die Hauptfunktion zurückgegeben?

    Code
    int algE (int[] k){
    int a = 0;
    int res = 0;
    while (a < k.Length) {
    res = res + k[a];
    a = a + 1;
    }
    return res;
    }

    Hier haben wir das Array k mit a Elementen und der Inhalt von allen Elementen wird summiert und ausgegeben, richtig?
    k.Length steht ja für die Anzahl der Elemente in array k.

    Gibt es einen Befehl der mir ein Array invertiert?
    Also z.B. aus [1, 2, 3, 4, 5] dann [5, 4, 3, 2, 1] macht?

    Dann noch etwas kurz zu booleschen Werten.
    Ich habe 2 Tabellen für die ich einen Algorithmus schreiben will, aber ich weiß nicht was das für boolesche Funktionen sind.
    Der dritte Wert ist immer die Ausgabe.

    1.
    false, false, false
    false, true, false
    true, false, false
    true, true, false

    2.
    false, false, true
    false, true, false
    true, false, true
    true, true, true

    Bei 1. kann ich doch einfach immer false ausgeben lassen??
    Bei 2. fällt mir zur Zeit gar nichts ein.


    Vielen Dank für´s Lesen!

  • Und jede bekommt als Wert das Quadrat der vorherigen zugewiesen.

    Nein, das Produkt des vorherigen Elements und j.

    Ausgegeben wird die 6 oder?

    Ausgegeben wird da gar nix. Zurückgegeben wird das ganze Array.

    Hier werden die Multiplikationen den einzelnen Arrays zugewiesen. Aber welchen Sinn macht die Ausgabe?

    Meine Kristallkugel bleibt trüb.

    Also bei Eingabe i=0=Ausgabe, Eingabe kleiner also 0, dann wird -1 ausgegeben, bei Eingabe>0 wird 1 ausgegeben.

    Ja. Auch bekannt als Signumfunktion.

    Was return bar ausgibt weiß ich nicht, wie bei dem 1. Code.

    Das ganze Array.

    Hier haben wir das Array k mit a Elementen und der Inhalt von allen Elementen wird summiert und ausgegeben, richtig?

    Ja.

    Gibt es einen Befehl der mir ein Array invertiert?
    Also z.B. aus [1, 2, 3, 4, 5] dann [5, 4, 3, 2, 1] macht?

    Möglich, kenn mich dazu in C# aber zuwenig aus. In Haskell kann man zum Beispiel schreiben:

    Code
    Hugs> reverse [1,2,3,4,5]
    [5,4,3,2,1]

    Bei 1. kann ich doch einfach immer false ausgeben lassen??

    Nein? Warum nicht?

    Bei 2. fällt mir zur Zeit gar nichts ein.


    Implikation.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!