Benutzer: gast • Besitzer: mthomas • Zuletzt geändert am: 2010/11/04 10:50:46

val Matrix=[ 0,20,23, 1, 0, 0, 0,
            20, 0, 0, 4,15, 0, 0,
  	    23, 0, 0,36, 0,28, 0,
             1, 4,36, 0, 9,15,16,
             0,15, 0, 9, 0, 0, 3,
             0, 0,28,15, 0, 0,17,
             0, 0, 0,16, 3,17, 0 ];

type tupel=(int);
val m1=Matrix;
val m2=Matrix;

fun Setze_null(list,Spalte:int,Zahl:int)=let
       fun Spalte_(list,Spalte,Zahl)=((take(list,((Zahl-1)*7+Spalte)-1)) @ [0] @ (drop(list,((Zahl-1)*7+Spalte)))) 
                                             
                                           
       fun Zeile_(list,Zeile,Zahl)= ((take(list,((Zeile-1)*7+Zahl)-1)) @ [0] @ (drop(list,((Zeile-1)*7+Zahl)))) 
                                           (*  else Zeile_(list,Spalte,Zahl+1)  *)    

        

in
  if Zahl<7 then let 
   in 
       Setze_null((Spalte_((Zeile_(list,Spalte,Zahl)),Spalte,Zahl)),Spalte,Zahl+1)

      (* Setze_null((Zeile_(list,Spalte,Zahl)),Spalte,Zahl+1) *)
  end  
else list

end;  

val last:tupel=0;
(* fun Wert(i:int):tupel=let val #1(last)=#1(last)+i in last end; *)
fun add(i:int):tupel= (last)+i; 

(*fun teste_Null(list,Zeile)=let
         fun Schleife(Spalte)=if Spalte< 7 then 
                                 if nth(list,(Zeile-1)*7+Spalte-1)>0 then let
 (*                                      val Wert=Wert_(Wert)+Wert *)
                                  
				  val last=add(nth(list,(Zeile-1)*7+Spalte-1)
                                  in
				     Wert(nth(list,(Zeile-1)*7+Spalte-1)); 
                                     if Zeile < 7 then                                    
				        teste_Null(list,Zeile+1)
				    else Schleife(Spalte+1)
   				end 
                                else
                                   Schleife(Spalte+1)
                                else last

in 
  
  Schleife(1)
end;	 *)

(* fun add(Wert):Tupel=if #1 last < Wert then #1 last else Wert *)

fun Teste(list,Zeile,Spalte)=let
   fun Zeile_d(list,Spalte)=if nth(list,(Zeile-1)*7+Spalte-1)>0 andalso Spalte <=7 then let 
                  in  
                 ( (print(toString(Zeile));print(toString(Spalte));print("j\n");print(" "));   
                                     (Teste(Setze_null(list,Zeile,1),Spalte,1) ))
                
                     end
  		else if Spalte<=7 then ((print(toString(Zeile));print(toString(Spalte));print("n");print(" "));
                  Zeile_d(list,Spalte+1)) else Teste(list,Zeile+1,1)
    		   
              
in
 if Zeile<7 then 
  Zeile_d(list,Spalte) else if
    nth(Spalte 
   Zeile_d(m1,Spalte)  else nil
end;