1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Kleine Algorithmen erklären

  • xxyy
  • 31. März 2008 um 12:52
  • Unerledigt
  • xxyy
    6
    xxyy
    Mitglied
    Punkte
    350
    Beiträge
    57
    • 31. März 2008 um 12:52
    • #1

    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.

    Code
    int[][] algB (int i) {
    int[][] myAr = new int[3][3];
    myAr[0][0] = i;
    myAr[1][0] = i * i;
    myAr[2][0] = i * i * i;
    i = i + 1;
    myAr[0][1] = i;
    myAr[1][1] = i * i;
    myAr[2][1] = i * i * i;
    i = i + 1;
    myAr[0][2] = i;
    myAr[1][2] = i * i;
    myAr[2][2] = i * i * i;
    return myAr;
    }
    Alles anzeigen

    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!

  • Paulchen
    1
    Paulchen
    Gast
    • 31. März 2008 um 13:35
    • #2
    Zitat von xxyy

    Und jede bekommt als Wert das Quadrat der vorherigen zugewiesen.

    Nein, das Produkt des vorherigen Elements und j.

    Zitat von xxyy

    Ausgegeben wird die 6 oder?

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

    Zitat von xxyy

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

    Meine Kristallkugel bleibt trüb.

    Zitat von xxyy

    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.

    Zitat von xxyy

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

    Das ganze Array.

    Zitat von xxyy

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

    Ja.

    Zitat von xxyy

    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]
    Zitat von xxyy

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

    Nein? Warum nicht?

    Zitat von xxyy

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


    Implikation.

  • Maximilian Rupp 27. Dezember 2024 um 12:04

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

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

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung