Browse Source

mass spring system

Claudio Gomes 6 years ago
parent
commit
072192217a

+ 4 - 0
.gitignore

@@ -0,0 +1,4 @@
+.ipynb_checkpoints
+/*.aux
+/*.log
+/*.gz

File diff suppressed because it is too large
+ 265 - 0
materials/1-NewtonsLaws/NewtonsLaws.ipynb


File diff suppressed because it is too large
+ 262 - 0
materials/1-NewtonsLaws/NewtonsLaws_exercises.ipynb


BIN
materials/1-NewtonsLaws/resources/mass-spring-damper.png


File diff suppressed because it is too large
+ 3976 - 0
materials/1-NewtonsLaws/resources/mass-spring-damper.svg


BIN
materials/1-NewtonsLaws/resources/mass-spring.png


File diff suppressed because it is too large
+ 3942 - 0
materials/1-NewtonsLaws/resources/mass-spring.svg


BIN
materials/1-NewtonsLaws/resources/solution.png


+ 46 - 0
materials/generate_exercises.py

@@ -0,0 +1,46 @@
+#!/usr/bin/python
+import os
+import argparse
+import re
+
+START_SOLUTION_PATTERN = r'#>Solution'
+END_SOLUTION_PATTERN = r'#<'
+
+StartSolRec = re.compile(START_SOLUTION_PATTERN, re.M|re.I)
+EndSolRec = re.compile(END_SOLUTION_PATTERN, re.M|re.I)
+
+
+if __name__ == '__main__':
+    parser = argparse.ArgumentParser(description='Exercise generation utility')
+    parser.add_argument('file', help='text file the exercises are.')
+    
+    args = parser.parse_args()
+    
+    f = args.file
+    
+    assert os.path.isfile(f)
+    
+    filename, ext = os.path.splitext(f)
+    
+    of = filename+'_exercises'+ext
+    
+    lines = list()
+    inSol = False
+    with open(f, "r") as ins:
+        for line in ins:
+            lines.append(line)
+    
+    with open(of, "w") as outf:
+        for line in lines:
+            startSol = StartSolRec.search(line)
+            if startSol:
+                assert not inSol
+                inSol = True
+            
+            if not inSol:
+                outf.write(line)
+            
+            endSol = EndSolRec.search(line)
+            if endSol:
+                assert inSol
+                inSol = False