Beiträge von tomlei

    Hallo! Kann mir jemand das Programm genau erklären ? Ich hab da leichte Probleme,
    unten mit den Bewegungen ist mir klar , aber oben habe ich Problem. :(


    %Startpostition
    start(Eingabe,Ausgabe,Startzustand,Pfad) :- [M|RBand] = Eingabe, solve(Startzustand,[],M,RBand,LiEnde,MEnde,ReEnde,Pfad),
    append(LiEnde,[MEnde],Z), append(Z,ReEnde,Ausgabe).


    solve(Startzustand,LBand,M,RBand,LiEnde,MEnde,ReEnde,Pfad) :-
    open(Pfad,read,Str),
    read_file(Str,Inhalt),close(Str),!,

    turing(Startzustand,LBand,M,RBand,LiEnde,MEnde,ReEnde,Inhalt).
    turing(AktZustand,LBand,M,RBand,LiEnde,MEnde,ReEnde,Inhalt) :- %Basisfall
    finde(AktZustand,M,Inhalt,NZeichen,ROL,'ende'),bewegung(LBand,NZeichen,RBand,ROL,LiEnde,MEnde,ReEnde).

    turing(AktZustand,LBand,M,RBand,LiEnde,MEnde2,ReEnde,Inhalt) :-
    finde(AktZustand,M,Inhalt,NZeichen,ROL,ZustandN),
    bewegung(LBand,NZeichen,RBand,ROL,LNeu,MEnde,RNeu),
    turing(ZustandN,LNeu,MEnde,RNeu,LiEnde,MEnde2,ReEnde,Inhalt).

    read_file(Stream,[]) :-
    at_end_of_stream(Stream).
    read_file(Stream,[X|L]) :-
    \+ at_end_of_stream(Stream),
    read(Stream,X),
    read_file(Stream,L).

    finde(Zustand,Zeichen,Lines,NZeichen,ROL,ZustandN) :- member(Z,Lines),(Zustand,Zeichen,NZeichen,ROL,ZustandN)=Z.


    bewegung(Links,Mitte,Rechts,ROL,LNeu,MNeu,RNeu) :- ROL= 'r', append(Links,[Mitte],LNeu),Rechts=[H|T], RNeu=T,MNeu=H.

    bewegung(Links,Mitte,Rechts,ROL,LNeu,MNeu,RNeu) :- ROL= 'r', append(Links,[Mitte],LNeu),Rechts=[],MNeu=' ',RNeu=[].

    bewegung(Links,Mitte,Rechts,ROL,LNeu,MNeu,RNeu) :- ROL= 'l', append([Mitte],Rechts,RNeu), reverse(Links,X), X=[H|T],
    reverse(T,NeuVariable),LNeu=NeuVariable, MNeu=H.

    bewegung(Links,Mitte,Rechts,ROL,LNeu,MNeu,RNeu) :- ROL= 'l', append([Mitte],Rechts,RNeu), Links=[], MNeu=' ',LNeu=[].

    Hallo! Kann mir jemand in Matlab weiterhelfen?

    1) Schreiben Sie die Funktion mul(A,B) welche zwei Matrizen multipliziert
    die integrierte Funktionalität darf hierbei nicht verwendet werden (A*B oder ähnliche Operationen sind verboten!)
    Führen Sie die Berechnung nur durch, wenn die Dimension von A und B die Berechnung erlaubt.

    2)Schreiben Sie die Funktion deter(A), welcher die Determinante von Matrix A berechnet
    det(A) oder ähnliche Operationen sind verboten!
    Führen Sie die Berechnung nur durch, wenn die Dimension von A die Berechnung erlaubt.


    3) Schreiben Sie die Funktion rot(A,n,d), welche die Zeilen bzw. Spalten der Matrix A n-mal rotiert, wobei die Rotationsrichtung folgendermaßen bestimmt wird:


    a. n>=0, d=true Die Spalte der Matrix werden n-mal nach rechts rotiert
    b. n=<0, d=true Die Spalte der Matrix werden n-mal nach links rotiert
    c. n>=0, d=false Die Spalte der Matrix werden n-mal nach unten rotiert
    d. n<0, d=false Die Spalte der Matrix werden n-mal nach oben rotiert

    Danke

    MFG

    Hallo! Ich bin noch ziemlich neu mit dem Umgang von Prolog. Kann mir zufällig jemand ein wenig helfen bei dieser Aufgabe (mit ein paar Tipps, Trcks, Lösungsvorschläge) ????

    Es wäre super, wenn mir jemand helfen könnte!
    Danke


    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.


    MFG