Генератор контрольной работы

595 days ago by semerikov

#auto def nicedet(M): s="$\\left|\\begin{array}{ccc} " for i in range(M.nrows()): for j in range(M.ncols()): s=s+" "+latex(M[i,j]) if j!=M.ncols()-1: s=s+"&" s=s+"\\\\" s=s+"\\end{array}\\right|$" return s def maketriple(a,b,c): s="$" if a<0: s=s+"("+latex(a)+")" else: s=s+latex(a) s=s+"\cdot" if b<0: s=s+"("+latex(b)+")" else: s=s+latex(b) s=s+"\cdot" if c<0: s=s+"("+latex(c)+")" else: s=s+latex(c) s=s+"$" return s def minor(M,str,col): L=[] for i in range(M.nrows()): for j in range(M.ncols()): if (i!=str) and (j!=col): L.append(M[i,j]) return matrix(M.nrows()-1,M.ncols()-1,L) @interact def mkr1(numvar = input_box(default=1, label="Кількість варіантів")): for var in range(numvar): html("</pre><center><font size=+2>Варіант %s</font></center>"%(var+1)) A=matrix(QQ,3,3) for i in range(3): for j in range(3): A[i,j]=randint(-5,5) html("<p>1. Обчисліть визначник %s, використовуючи:<br>"%nicedet(A)) html("<p>а) правило трикутників;<br>") html("%s=%s$+$%s$+$%s$-($%s$+$%s$+$%s$)=%s$"%(nicedet(A),\ maketriple(A[0,0],A[1,1],A[2,2]),\ maketriple(A[0,1],A[1,2],A[2,0]),\ maketriple(A[1,0],A[2,1],A[0,2]),\ maketriple(A[2,0],A[1,1],A[0,2]),\ maketriple(A[1,0],A[0,1],A[2,2]),\ maketriple(A[0,0],A[2,1],A[1,2]),\ det(A))) html("<p>б) метод розкладання визначника за елементами деякого рядка або стовпця;<br>") html("%s="%(nicedet(A))) str=randint(0,2) s="$" s=s+latex(A[str,0])+"\cdot(-1)^{%s+1}\cdot$"%(str+1)+nicedet(minor(A,str,0))+"$" if A[str,1]>=0: s=s+"+" s=s+latex(A[str,1])+"\cdot(-1)^{%s+2}\cdot$"%(str+1)+nicedet(minor(A,str,1))+"$" if A[str,2]>=0: s=s+"+" s=s+latex(A[str,2])+"\cdot(-1)^{%s+3}\cdot$"%(str+1)+nicedet(minor(A,str,2))+"$" s=s+"=$" html("%s"%s) s="" s=s+latex(A[str,0])+"\cdot" if (-1)^(str+0)==-1: s=s+"(-1)" else: s=s+"1" s=s+"\cdot" if det(minor(A,str,0))<0: s=s+"("+latex(det(minor(A,str,0)))+")" else: s=s+latex(det(minor(A,str,0))) if A[str,1]>=0: s=s+"+" s=s+latex(A[str,1])+"\cdot" if (-1)^(str+1)==-1: s=s+"(-1)" else: s=s+"1" s=s+"\cdot" if det(minor(A,str,1))<0: s=s+"("+latex(det(minor(A,str,1)))+")" else: s=s+latex(det(minor(A,str,1))) if A[str,2]>=0: s=s+"+" s=s+latex(A[str,2])+"\cdot" if (-1)^(str+2)==-1: s=s+"(-1)" else: s=s+"1" s=s+"\cdot" if det(minor(A,str,2))<0: s=s+"("+latex(det(minor(A,str,2)))+")" else: s=s+latex(det(minor(A,str,2))) html("<br>$=%s=%s$"%(s,det(A))) html("<p>в) метод зведення до трикутного вигляду.<br>") B=copy(A) sign=1 while B[0,0]==0: B.swap_rows(0,randint(1,2)) sign=-sign s="%s$=$"%nicedet(A) if sign==-1: s=s+"$-$%s$=$"%nicedet(B) B[0]=-B[0] s=s+"%s$=$"%nicedet(B) if B[1,0]!=0: koeff=-B[1,0]/B[0,0] B[1]=B[1]+koeff*B[0] s=s+"%s$=$"%nicedet(B) if B[2,0]!=0: koeff=-B[2,0]/B[0,0] B[2]=B[2]+koeff*B[0] s=s+"%s$=$"%nicedet(B) if B[2,1]!=0: koeff=-B[2,1]/B[1,1] B[2]=B[2]+koeff*B[1] s=s+"%s$=$"%nicedet(B) s=s+maketriple(B[0,0],B[1,1],B[2,2])+"$=%s$"%det(B) html(s) html("<hr>") 
       

Click to the left again to hide and once more to show the dynamic interactive window

a=matrix(2) 
       
a.swap_rows? 
       
 
       
Traceback (click to the left of this block for traceback)
...
AttributeError: 'sage.matrix.matrix_integer_dense.Matrix_integer_dense'
object has no attribute 'm'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "_sage_input_14.py", line 10, in <module>
    exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("QS5t"),globals())+"\\n"); execfile(os.path.abspath("___code___.py"))
  File "", line 1, in <module>
    
  File "/tmp/tmpMUKKPA/___code___.py", line 2, in <module>
    exec compile(u'A.m
  File "", line 1, in <module>
    
  File "element.pyx", line 305, in sage.structure.element.Element.__getattr__ (sage/structure/element.c:2628)
  File "parent.pyx", line 267, in sage.structure.parent.getattr_from_other_class (sage/structure/parent.c:2828)
  File "parent.pyx", line 169, in sage.structure.parent.raise_attribute_error (sage/structure/parent.c:2595)
AttributeError: 'sage.matrix.matrix_integer_dense.Matrix_integer_dense' object has no attribute 'm'