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