first commit
This commit is contained in:
		
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										1
									
								
								CPE449/models.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								CPE449/models.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | [{"analyzerName":"intellisense-members-lstm-pylance","languageName":"python","identity":{"modelId":"E61945A9A512ED5E1A3EE3F1A2365B88F8FE","outputId":"E4E9EADA96734F01970E616FAB2FAC19","modifiedTimeUtc":"2020-08-11T14:06:50.811Z"},"filePath":"E61945A9A512ED5E1A3EE3F1A2365B88F8FE_E4E9EADA96734F01970E616FAB2FAC19","lastAccessTimeUtc":"2022-08-23T17:00:15.943Z"}] | ||||||
							
								
								
									
										51
									
								
								CPE449/passwordAttacks/dictionary.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								CPE449/passwordAttacks/dictionary.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,51 @@ | |||||||
|  | import crypt | ||||||
|  | from hmac import compare_digest as compare_hash | ||||||
|  | import sys | ||||||
|  |  | ||||||
|  |  | ||||||
|  | passwordFileArg = sys.argv[1] | ||||||
|  | passwordList = sys.argv[2] | ||||||
|  | passwordHashLines = [ ] | ||||||
|  | hashesAndSalt = [] | ||||||
|  | userIDs = [ ] | ||||||
|  | hashesFromFile = [] | ||||||
|  | hashArr = [] | ||||||
|  | index = 0 | ||||||
|  |  | ||||||
|  | passwordFile = open(passwordFileArg) | ||||||
|  | passwordHashes = passwordFile.readlines() | ||||||
|  |  | ||||||
|  | for line in passwordHashes: | ||||||
|  |     passwordHashLines.append(line) | ||||||
|  |     passwordHashArr = passwordHashLines[index].split(":") | ||||||
|  |     # Store salt + hashes, and hashes seperately as well | ||||||
|  |     hash = passwordHashArr[1] | ||||||
|  |     hashesAndSalt.append(hash) | ||||||
|  |     passHash = hash.split("$") | ||||||
|  |     userIDs.append(passwordHashArr[0]) | ||||||
|  |     hashArr.append(passHash[3]) | ||||||
|  |     # Use hashes | ||||||
|  |     hashesFromFile.append(passwordHashArr[1]) | ||||||
|  |     index += 1 | ||||||
|  |  | ||||||
|  | passwordFile.close() | ||||||
|  | index = 0 | ||||||
|  |  | ||||||
|  | # Check hashes against passwords from file | ||||||
|  | passwordListFile = open(passwordList) | ||||||
|  | passwordList = passwordListFile.readlines() | ||||||
|  |  | ||||||
|  | # inner loop inside a loop over the password hashes | ||||||
|  | for hashedPassword in hashArr: | ||||||
|  |     for password in passwordList: | ||||||
|  |         # Compare hashes | ||||||
|  |         cmpHash = crypt.crypt(password.rstrip().lstrip(), hashesAndSalt[index]) | ||||||
|  |         cmpHashPass = cmpHash.split("$") | ||||||
|  |         cmpHashPass = cmpHashPass[3] | ||||||
|  |         # print(cmpHashPass + " Password Hash: " + hashedPassword) | ||||||
|  |         if compare_hash(cmpHashPass, hashedPassword): | ||||||
|  |             print("Match found for userid " + userIDs[index] + ". Password = " + password) | ||||||
|  |             break | ||||||
|  |         else: | ||||||
|  |             print("No match was found for " + userIDs[index] + ".") | ||||||
|  |     index += 1 | ||||||
							
								
								
									
										3546
									
								
								CPE449/passwordAttacks/dictionary.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3546
									
								
								CPE449/passwordAttacks/dictionary.txt
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										3546
									
								
								CPE449/passwordAttacks/password-2011.lst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3546
									
								
								CPE449/passwordAttacks/password-2011.lst
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										3546
									
								
								CPE449/passwordAttacks/rainbow_table.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3546
									
								
								CPE449/passwordAttacks/rainbow_table.txt
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										23
									
								
								CPE449/passwordAttacks/rainbowtable.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								CPE449/passwordAttacks/rainbowtable.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | |||||||
|  | import sys | ||||||
|  | import hashlib | ||||||
|  |  | ||||||
|  | passwordListFile = sys.argv[1] | ||||||
|  | passwords = [ ] | ||||||
|  | hashArr = [] | ||||||
|  | hashDictonary = { } | ||||||
|  | index = 0 | ||||||
|  |  | ||||||
|  | passwordFile = open(passwordListFile) | ||||||
|  | passwordList = passwordFile.readlines() | ||||||
|  |  | ||||||
|  | for password in passwordList: | ||||||
|  |     passCleanEncoded = password.rstrip().lstrip().encode("utf_16_le") | ||||||
|  |     hash = hashlib.new("md4") | ||||||
|  |     hash.update(passCleanEncoded) | ||||||
|  |     hashDictonary[hash.hexdigest()] = password | ||||||
|  |  | ||||||
|  | hashDictonarySorted = sorted(hashDictonary) | ||||||
|  |  | ||||||
|  | for hashEntry in hashDictonarySorted: | ||||||
|  |     msg = hashEntry + ":" + hashDictonary[hashEntry] | ||||||
|  |     print(msg.rstrip()) | ||||||
							
								
								
									
										3
									
								
								CPE449/passwordAttacks/shadow
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								CPE449/passwordAttacks/shadow
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | tommy:$6$HFQQdE2g$g0eyz6UN.c4Pg1tiQgdPPPXdQ1fEOwttCwzSah/Jo4RE9Eac4H7pgksaNLI/WSIyN8tNtCX4NaAq6Uwz.o.4W1:17400:0:99999:7::: | ||||||
|  | mathis:$6$niptplk1$.mMMVx4T375WhFkDN5RWEaD93HcmDCx3aBQrn2ZalbiRpl4FB2Rww/BeCPEfSYbegjPvoHM2llQmk/VBbSxWj.:17400:0:99999:7::: | ||||||
|  | tristan:$6$MWwusFJx$KCoO1wiWKtE.7j/7UiwD.1jXmOckMb5X4GGt1DotLS0laXdFga5n3wGfu43FC/Opxki7mY6Yf9XT.cBGN.pkp0:17400:0:99999:7::: | ||||||
							
								
								
									
										0
									
								
								CPE449/rainbow_table.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								CPE449/rainbow_table.txt
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										100
									
								
								ENG101/ExData.csv
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								ENG101/ExData.csv
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,100 @@ | |||||||
|  | 1,1.03022387 | ||||||
|  | 2,1.038002145 | ||||||
|  | 3,1.035830101 | ||||||
|  | 4,1.034994363 | ||||||
|  | 5,1.031323334 | ||||||
|  | 6,1.038452321 | ||||||
|  | 7,1.043062609 | ||||||
|  | 8,1.038032379 | ||||||
|  | 9,1.0364557 | ||||||
|  | 10,1.032418438 | ||||||
|  | 11,1.035486002 | ||||||
|  | 12,1.034489151 | ||||||
|  | 13,1.042182439 | ||||||
|  | 14,1.036726578 | ||||||
|  | 15,1.040725664 | ||||||
|  | 16,1.04258192 | ||||||
|  | 17,1.033622994 | ||||||
|  | 18,1.0353206 | ||||||
|  | 19,1.036432256 | ||||||
|  | 20,1.039528582 | ||||||
|  | 21,1.037882773 | ||||||
|  | 22,1.03727257 | ||||||
|  | 23,1.037687353 | ||||||
|  | 24,1.031052011 | ||||||
|  | 25,1.03824202 | ||||||
|  | 26,1.042547636 | ||||||
|  | 27,1.041188157 | ||||||
|  | 28,1.040335043 | ||||||
|  | 29,1.039175566 | ||||||
|  | 30,1.039636431 | ||||||
|  | 31,1.037803898 | ||||||
|  | 32,1.041778196 | ||||||
|  | 33,1.034893874 | ||||||
|  | 34,1.031176139 | ||||||
|  | 35,1.033263496 | ||||||
|  | 36,1.043093701 | ||||||
|  | 37,1.043429697 | ||||||
|  | 38,1.001 | ||||||
|  | 39,1.04113086 | ||||||
|  | 40,1.037847987 | ||||||
|  | 41,1.032391964 | ||||||
|  | 42,1.040356843 | ||||||
|  | 43,1.037036769 | ||||||
|  | 44,1.039085609 | ||||||
|  | 45,1.036347304 | ||||||
|  | 46,1.040578085 | ||||||
|  | 47,1.037387121 | ||||||
|  | 48,1.038344488 | ||||||
|  | 49,1.031850887 | ||||||
|  | 50,1.040082844 | ||||||
|  | 51,0.985461896 | ||||||
|  | 52,0.826852007 | ||||||
|  | 53,0.797357281 | ||||||
|  | 54,1.005512301 | ||||||
|  | 55,1.00039709 | ||||||
|  | 56,1.222802255 | ||||||
|  | 57,1.142375769 | ||||||
|  | 58,1.352032893 | ||||||
|  | 59,1.112897551 | ||||||
|  | 60,0.87815325 | ||||||
|  | 61,1.105341595 | ||||||
|  | 62,1.068324568 | ||||||
|  | 63,0.677663188 | ||||||
|  | 64,0.796153856 | ||||||
|  | 65,1.008681073 | ||||||
|  | 66,0.580124268 | ||||||
|  | 67,1.114469402 | ||||||
|  | 68,0.775473003 | ||||||
|  | 69,0.662000558 | ||||||
|  | 70,1.215449602 | ||||||
|  | 71,1.190480987 | ||||||
|  | 72,1.042210619 | ||||||
|  | 73,0.779978889 | ||||||
|  | 74,0.978878568 | ||||||
|  | 75,1.103720987 | ||||||
|  | 76,1.171154216 | ||||||
|  | 77,1.552026816 | ||||||
|  | 78,0.863948023 | ||||||
|  | 79,0.851098845 | ||||||
|  | 80,0.838314475 | ||||||
|  | 81,0.858669262 | ||||||
|  | 82,1.019072619 | ||||||
|  | 83,0.787732957 | ||||||
|  | 84,0.813981183 | ||||||
|  | 85,1.199212974 | ||||||
|  | 86,0.846172396 | ||||||
|  | 87,1.165392635 | ||||||
|  | 88,1.14476665 | ||||||
|  | 89,1.34478376 | ||||||
|  | 90,1.501 | ||||||
|  | 91,1.018674479 | ||||||
|  | 92,1.092147525 | ||||||
|  | 93,0.827845253 | ||||||
|  | 94,0.941279736 | ||||||
|  | 95,0.892973283 | ||||||
|  | 96,1.168058418 | ||||||
|  | 97,0.779913496 | ||||||
|  | 98,1.174240444 | ||||||
|  | 99,1.078392083 | ||||||
|  | 100,1.084858149 | ||||||
| 
 | 
							
								
								
									
										1200
									
								
								ENG101/ExData2.csv
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1200
									
								
								ENG101/ExData2.csv
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1
									
								
								ENG101/ExDataAV.csv
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								ENG101/ExDataAV.csv
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | Strain (uin/in),Stress (MPa) | ||||||
| 
 | 
							
								
								
									
										101
									
								
								ENG101/ExDataHeader.csv
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								ENG101/ExDataHeader.csv
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,101 @@ | |||||||
|  | Count,Voltage Data,,,,,,,,, | ||||||
|  | 1,1.062327971,,,,,,,,, | ||||||
|  | 2,1.072680855,,,,,,,,, | ||||||
|  | 3,1.069789864,,,,,,,,, | ||||||
|  | 4,1.068677497,,,,,,,,, | ||||||
|  | 5,1.063791358,,,,,,,,, | ||||||
|  | 6,1.073280039,,,,,,,,, | ||||||
|  | 7,1.079416333,,,,,,,,, | ||||||
|  | 8,1.072721096,,,,,,,,, | ||||||
|  | 9,1.070622537,,,,,,,,, | ||||||
|  | 10,1.065248941,,,,,,,,, | ||||||
|  | 11,1.069331869,,,,,,,,, | ||||||
|  | 12,1.06800506,,,,,,,,, | ||||||
|  | 13,1.078244826,,,,,,,,, | ||||||
|  | 14,1.070983075,,,,,,,,, | ||||||
|  | 15,1.076305859,,,,,,,,, | ||||||
|  | 16,1.078776536,,,,,,,,, | ||||||
|  | 17,1.066852205,,,,,,,,, | ||||||
|  | 18,1.069111719,,,,,,,,, | ||||||
|  | 19,1.070591333,,,,,,,,, | ||||||
|  | 20,1.074712543,,,,,,,,, | ||||||
|  | 21,1.072521971,,,,,,,,, | ||||||
|  | 22,1.071709791,,,,,,,,, | ||||||
|  | 23,1.072261867,,,,,,,,, | ||||||
|  | 24,1.063430227,,,,,,,,, | ||||||
|  | 25,1.073000129,,,,,,,,, | ||||||
|  | 26,1.078730904,,,,,,,,, | ||||||
|  | 27,1.076921437,,,,,,,,, | ||||||
|  | 28,1.075785942,,,,,,,,, | ||||||
|  | 29,1.074242678,,,,,,,,, | ||||||
|  | 30,1.07485609,,,,,,,,, | ||||||
|  | 31,1.072416988,,,,,,,,, | ||||||
|  | 32,1.077706779,,,,,,,,, | ||||||
|  | 33,1.068543746,,,,,,,,, | ||||||
|  | 34,1.063595441,,,,,,,,, | ||||||
|  | 35,1.066373713,,,,,,,,, | ||||||
|  | 36,1.079457716,,,,,,,,, | ||||||
|  | 37,1.079904927,,,,,,,,, | ||||||
|  | 38,1.023431,,,,,,,,, | ||||||
|  | 39,1.076845175,,,,,,,,, | ||||||
|  | 40,1.072475671,,,,,,,,, | ||||||
|  | 41,1.065213704,,,,,,,,, | ||||||
|  | 42,1.075814958,,,,,,,,, | ||||||
|  | 43,1.07139594,,,,,,,,, | ||||||
|  | 44,1.074122946,,,,,,,,, | ||||||
|  | 45,1.070478262,,,,,,,,, | ||||||
|  | 46,1.076109431,,,,,,,,, | ||||||
|  | 47,1.071862258,,,,,,,,, | ||||||
|  | 48,1.073136514,,,,,,,,, | ||||||
|  | 49,1.064493531,,,,,,,,, | ||||||
|  | 50,1.075450265,,,,,,,,, | ||||||
|  | 51,0.985461896,,,,,,,,, | ||||||
|  | 52,0.826852007,,,,,,,,, | ||||||
|  | 53,0.797357281,,,,,,,,, | ||||||
|  | 54,1.005512301,,,,,,,,, | ||||||
|  | 55,1.00039709,,,,,,,,, | ||||||
|  | 56,1.222802255,,,,,,,,, | ||||||
|  | 57,1.142375769,,,,,,,,, | ||||||
|  | 58,1.352032893,,,,,,,,, | ||||||
|  | 59,1.112897551,,,,,,,,, | ||||||
|  | 60,0.87815325,,,,,,,,, | ||||||
|  | 61,1.105341595,,,,,,,,, | ||||||
|  | 62,1.068324568,,,,,,,,, | ||||||
|  | 63,0.677663188,,,,,,,,, | ||||||
|  | 64,0.796153856,,,,,,,,, | ||||||
|  | 65,1.008681073,,,,,,,,, | ||||||
|  | 66,0.580124268,,,,,,,,, | ||||||
|  | 67,1.114469402,,,,,,,,, | ||||||
|  | 68,0.775473003,,,,,,,,, | ||||||
|  | 69,0.662000558,,,,,,,,, | ||||||
|  | 70,1.215449602,,,,,,,,, | ||||||
|  | 71,1.190480987,,,,,,,,, | ||||||
|  | 72,1.042210619,,,,,,,,, | ||||||
|  | 73,0.779978889,,,,,,,,, | ||||||
|  | 74,0.978878568,,,,,,,,, | ||||||
|  | 75,1.103720987,,,,,,,,, | ||||||
|  | 76,1.171154216,,,,,,,,, | ||||||
|  | 77,1.552026816,,,,,,,,, | ||||||
|  | 78,0.863948023,,,,,,,,, | ||||||
|  | 79,0.851098845,,,,,,,,, | ||||||
|  | 80,0.838314475,,,,,,,,, | ||||||
|  | 81,0.858669262,,,,,,,,, | ||||||
|  | 82,1.019072619,,,,,,,,, | ||||||
|  | 83,0.787732957,,,,,,,,, | ||||||
|  | 84,0.813981183,,,,,,,,, | ||||||
|  | 85,1.199212974,,,,,,,,, | ||||||
|  | 86,0.846172396,,,,,,,,, | ||||||
|  | 87,1.165392635,,,,,,,,, | ||||||
|  | 88,1.14476665,,,,,,,,, | ||||||
|  | 89,1.34478376,,,,,,,,, | ||||||
|  | 90,1.501,,,,,,,,, | ||||||
|  | 91,1.018674479,,,,,,,,, | ||||||
|  | 92,1.092147525,,,,,,,,, | ||||||
|  | 93,0.827845253,,,,,,,,, | ||||||
|  | 94,0.941279736,,,,,,,,, | ||||||
|  | 95,0.892973283,,,,,,,,, | ||||||
|  | 96,1.168058418,,,,,,,,, | ||||||
|  | 97,0.779913496,,,,,,,,, | ||||||
|  | 98,1.174240444,,,,,,,,, | ||||||
|  | 99,1.078392083,,,,,,,,, | ||||||
|  | 100,1.084858149,,,,,,,,, | ||||||
| 
 | 
							
								
								
									
										120
									
								
								ENG101/ExOut.csv
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										120
									
								
								ENG101/ExOut.csv
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,120 @@ | |||||||
|  | Strain (uin/in),Stress (MPa) | ||||||
|  | 1.65,11.5368388571 | ||||||
|  | 4.65,15.1058065764 | ||||||
|  | 7.65,21.451095314600003 | ||||||
|  | 10.65,14.609898013100002 | ||||||
|  | 13.65,15.3054780604 | ||||||
|  | 16.65,17.266535699099997 | ||||||
|  | 19.65,12.4372158524 | ||||||
|  | 22.65,21.647249264 | ||||||
|  | 25.65,16.0263667884 | ||||||
|  | 28.65,19.904207817600003 | ||||||
|  | 31.65,16.5835494524 | ||||||
|  | 34.65,14.762178060599998 | ||||||
|  | 37.65,24.440855746 | ||||||
|  | 40.65,22.295515467999998 | ||||||
|  | 43.65,23.581816192599998 | ||||||
|  | 46.65,20.448750224 | ||||||
|  | 49.65,26.231393585 | ||||||
|  | 52.65,18.6690062367 | ||||||
|  | 55.65,18.611003864800004 | ||||||
|  | 58.65,27.998144208999996 | ||||||
|  | 61.65,29.751504903000004 | ||||||
|  | 64.65,23.007978065899998 | ||||||
|  | 67.65,25.4794480655 | ||||||
|  | 70.65,27.7740888401 | ||||||
|  | 73.65,38.533748958000004 | ||||||
|  | 76.65,36.294744526 | ||||||
|  | 79.65,27.000393643999995 | ||||||
|  | 82.65,29.087837796000002 | ||||||
|  | 85.65,28.064544045999998 | ||||||
|  | 88.65,34.912354873 | ||||||
|  | 91.65,35.836430145 | ||||||
|  | 94.65,33.456239583999995 | ||||||
|  | 97.65,35.516474905 | ||||||
|  | 100.65,38.0092775385 | ||||||
|  | 103.65,36.522323283999995 | ||||||
|  | 106.65,31.765110381 | ||||||
|  | 109.65,39.26947663199999 | ||||||
|  | 112.65,40.627676144999995 | ||||||
|  | 115.65,41.792592591 | ||||||
|  | 118.65,38.820560986 | ||||||
|  | 121.65,42.298257624 | ||||||
|  | 124.65,44.962516261999994 | ||||||
|  | 127.65,40.886862319 | ||||||
|  | 130.65,44.237313107000006 | ||||||
|  | 133.65,43.58575231499999 | ||||||
|  | 136.65,48.708748910000004 | ||||||
|  | 139.65,51.244670328999995 | ||||||
|  | 142.65,47.636750856999996 | ||||||
|  | 145.65,40.355670139999994 | ||||||
|  | 148.65,51.85339110000001 | ||||||
|  | 151.65,44.585860819 | ||||||
|  | 154.65,42.606355303 | ||||||
|  | 157.65,48.992946144 | ||||||
|  | 160.65,51.411873356 | ||||||
|  | 163.65,53.516085045 | ||||||
|  | 166.65,53.24099886399999 | ||||||
|  | 169.65,50.810543646000006 | ||||||
|  | 172.65,51.339064878 | ||||||
|  | 175.65,52.705154074000006 | ||||||
|  | 178.65,51.801641796 | ||||||
|  | 181.65,51.769542525 | ||||||
|  | 184.65,50.17021672199999 | ||||||
|  | 187.65,62.699722921 | ||||||
|  | 190.65,56.343399233 | ||||||
|  | 193.65,58.99051060199999 | ||||||
|  | 196.65,58.953907105 | ||||||
|  | 199.65,58.820206403 | ||||||
|  | 202.65,58.627091308000004 | ||||||
|  | 205.65,61.91559034700001 | ||||||
|  | 208.65,70.55255905599999 | ||||||
|  | 211.65,59.438268343000004 | ||||||
|  | 214.65,53.317705438999994 | ||||||
|  | 217.65,57.449343526999996 | ||||||
|  | 220.65,63.044159311 | ||||||
|  | 223.65,66.054539744 | ||||||
|  | 226.65,62.493259212 | ||||||
|  | 229.65,67.62544267199999 | ||||||
|  | 232.65,63.37806249199999 | ||||||
|  | 235.65,66.845325549 | ||||||
|  | 238.65,65.64729296 | ||||||
|  | 241.65,73.453739469 | ||||||
|  | 244.65,64.03986164199999 | ||||||
|  | 247.65,64.570973901 | ||||||
|  | 250.65,66.992038597 | ||||||
|  | 253.65,75.760309806 | ||||||
|  | 256.65,72.28117522700002 | ||||||
|  | 259.65,67.447749419 | ||||||
|  | 262.65,72.685523101 | ||||||
|  | 265.65,75.971818568 | ||||||
|  | 268.65,74.40453253799998 | ||||||
|  | 271.65,70.815123987 | ||||||
|  | 274.65,73.264023952 | ||||||
|  | 277.65,80.500570767 | ||||||
|  | 280.65,79.86799752900001 | ||||||
|  | 283.65,76.794711433 | ||||||
|  | 286.65,83.61934933 | ||||||
|  | 289.65,81.902764056 | ||||||
|  | 292.65,82.69293608099998 | ||||||
|  | 295.65,71.87164833899999 | ||||||
|  | 298.65,85.24590939299999 | ||||||
|  | 301.65,86.72732351 | ||||||
|  | 304.65,79.75972714699999 | ||||||
|  | 307.65,80.68876001599999 | ||||||
|  | 310.65,86.00140311 | ||||||
|  | 313.65,87.700489412 | ||||||
|  | 316.65,88.230214817 | ||||||
|  | 319.65,88.86899082599999 | ||||||
|  | 322.65,88.80261032 | ||||||
|  | 325.65,87.95457817299999 | ||||||
|  | 328.65,80.38514716 | ||||||
|  | 331.65,82.092477353 | ||||||
|  | 334.65,82.729539788 | ||||||
|  | 337.65,93.65622121199999 | ||||||
|  | 340.65,89.057660073 | ||||||
|  | 343.65,90.94583188899999 | ||||||
|  | 346.65,88.21206691100001 | ||||||
|  | 349.65,95.495417296 | ||||||
|  | 352.65,87.667794725 | ||||||
|  | 355.65,96.26762800800002 | ||||||
| 
 | 
							
								
								
									
										2399
									
								
								ENG101/Ex_out.csv
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2399
									
								
								ENG101/Ex_out.csv
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								ENG101/HW1 Python.pdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								ENG101/HW1 Python.pdf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										151
									
								
								ENG101/HW1.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										151
									
								
								ENG101/HW1.py
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,151 @@ | |||||||
|  | def Richter(r): | ||||||
|  |     """ | ||||||
|  |     Assignment Python HW, pt. 1: Ritcher | ||||||
|  |     Andrew Noah Woodlee | ||||||
|  |     ENG 101-06 | ||||||
|  |     Due Date: 11-10-19 | ||||||
|  |  | ||||||
|  |     ******* | ||||||
|  |     """ | ||||||
|  |     E=[] | ||||||
|  |     T=[] | ||||||
|  |     j=0 | ||||||
|  |     print('Richter measurement \t Energy in Joules \t TNT') | ||||||
|  |     for i in r: | ||||||
|  |         E.append(10**((1.5*i)+4.8)) #Calculates energy in Joules | ||||||
|  |         T.append(E[j]*4.184*10**9) #Calculates tons of TNT | ||||||
|  |         print('%-20f \t %-20e \t %-20e' %(i,E[j],T[j])) | ||||||
|  |         j+=1 | ||||||
|  |     return E,T | ||||||
|  |  | ||||||
|  | def RPSGame(): | ||||||
|  |   import random as ran | ||||||
|  |   w=['r','p','s'] | ||||||
|  |   cpu=ran.choice(w) | ||||||
|  |   Cwin=0 | ||||||
|  |   Uwin=0 | ||||||
|  |   Draw=0 | ||||||
|  |   #s=input('Please choose a wepon (r, p, or s) or q to quit. The game has begun; prepare to face your doom: ').lower() | ||||||
|  |   while Cwin<3 and Uwin<3: | ||||||
|  |     s=input('Please choose a wepon (r, p, or s) or q to quit. The game has begun; prepare to face your doom: ').lower() | ||||||
|  |     if s=='q': | ||||||
|  |       print("Goodbye") | ||||||
|  |       return | ||||||
|  |     elif (s=='s' and cpu=='r') or (s=='s' and cpu=='p') or (s=='p' and cpu=='s'): | ||||||
|  |       print("I win!") | ||||||
|  |       Cwin+=1 | ||||||
|  |     elif (s=='r' and cpu=='s') or (s=='p' and cpu=='s') or (s=='s' and cpu=='p'): | ||||||
|  |       print("You win.") | ||||||
|  |       Uwin+=1 | ||||||
|  |     elif s==cpu: | ||||||
|  |       print("Tie") | ||||||
|  |       Draw+=1 | ||||||
|  |   print("Wins:",Uwin) | ||||||
|  |   print("Draws: ",Draw) | ||||||
|  |   print("Losses: ",Cwin)  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | def num_roman(num): | ||||||
|  |   """ | ||||||
|  |   Python Homework 1, pt. 3 | ||||||
|  |   Andrew Noah Woodlee | ||||||
|  |   ENG 101-06 | ||||||
|  |   Due date: 11-12-19 | ||||||
|  |   nun_roman(x) | ||||||
|  |   Input: | ||||||
|  |   num should be a scalar between 1-3999 | ||||||
|  |   Output: | ||||||
|  |   rn is a Roman numeral string | ||||||
|  |   """ | ||||||
|  |   rn='' | ||||||
|  |   if num=='': | ||||||
|  |     rn+='MMXIX' | ||||||
|  |   elif isinstance(num, list): | ||||||
|  |     print("num must be a scalar!") | ||||||
|  |     return | ||||||
|  |   elif num<1: | ||||||
|  |     print('Please enter a positive number!') | ||||||
|  |     return | ||||||
|  |   elif num>3999: | ||||||
|  |     print("num can not be greater than 3999!") | ||||||
|  |     return | ||||||
|  |   else: | ||||||
|  |     num==int(num) | ||||||
|  |   while num>=1000: | ||||||
|  |       num-=1000 | ||||||
|  |       rn+="M" | ||||||
|  |   if num>=900: | ||||||
|  |       num-=900 | ||||||
|  |       rn+="CM" | ||||||
|  |   if num>=500: | ||||||
|  |       num-=500 | ||||||
|  |       rn+="D" | ||||||
|  |   if num>=400: | ||||||
|  |       num-=400 | ||||||
|  |       rn+="CD" | ||||||
|  |   while num>=100: | ||||||
|  |       num-=100 | ||||||
|  |       rn+="C" | ||||||
|  |   if num>=90: | ||||||
|  |       num-=90 | ||||||
|  |       rn+="XC" | ||||||
|  |   if num>=50: | ||||||
|  |       num-=50 | ||||||
|  |       rn+="L" | ||||||
|  |   if num>=40: | ||||||
|  |       num-=40 | ||||||
|  |       rn+="XL" | ||||||
|  |   while x>=10: | ||||||
|  |       x-=10 | ||||||
|  |       rn+="X" | ||||||
|  |   if num>=9: | ||||||
|  |       num-=9 | ||||||
|  |       rn+="IX" | ||||||
|  |   if num>=5: | ||||||
|  |       num-=5 | ||||||
|  |       rn="V" | ||||||
|  |   if num>=4: | ||||||
|  |       num-=4 | ||||||
|  |       rn+="IV" | ||||||
|  |   while num>=1: | ||||||
|  |       num-=1 | ||||||
|  |       rn+="I" | ||||||
|  |   return rn | ||||||
|  |  | ||||||
|  | def Epieces(x,y): | ||||||
|  |   """ | ||||||
|  |   Python HW1, pt. 4: Epieces | ||||||
|  |   Andrew Noah Woodlee | ||||||
|  |   ENG 101-06 | ||||||
|  |   Due Date: 11/12/19 | ||||||
|  |   Epieces(x,y) | ||||||
|  |   Input: | ||||||
|  |   x and y are arrays of equal length | ||||||
|  |   Output: | ||||||
|  |   The first output is an array of various calculations on the first array | ||||||
|  |   The second is the average of the output array | ||||||
|  |   The third output is the index number of the x input minimum | ||||||
|  |   """ | ||||||
|  |   import math as m | ||||||
|  |   import statistics as stats | ||||||
|  |   if len(x)!=len(y): | ||||||
|  |     print("Arrays must be equal in length.") | ||||||
|  |   n=len(x) | ||||||
|  |   a=[] | ||||||
|  |   for i in range(0,n): | ||||||
|  |     if y[i]=='A': | ||||||
|  |         a.append(m.degrees(m.atan(x[i]))) | ||||||
|  |     if y[i]=='B': | ||||||
|  |         a.append(m.sqrt(1+x[i]**2)) | ||||||
|  |     if y[i]=='C': | ||||||
|  |         a.append(m.factorial(m.ceil(x[i]))) | ||||||
|  |     if y[i]=='D': | ||||||
|  |         a.append(m.log2(x[i])) | ||||||
|  |     if y[i]!='A' or y[i]!='B' or y[i]!='C' or y[i]!='D': | ||||||
|  |         a.append(2*i) | ||||||
|  |   b=stats.mean(a) | ||||||
|  |   c=x.index(min(x)) | ||||||
|  |   print("a = ",a) | ||||||
|  |   print("b = ",b) | ||||||
|  |   print("c = ",c) | ||||||
							
								
								
									
										
											BIN
										
									
								
								ENG101/HW2 Python.pdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								ENG101/HW2 Python.pdf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										15
									
								
								ENG101/HW2.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										15
									
								
								ENG101/HW2.py
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | def password(x): | ||||||
|  |   """ | ||||||
|  |   Python HW2: Pt. 1, Password | ||||||
|  |   Andrew Noah Woodlee | ||||||
|  |   ENG 101-06 | ||||||
|  |   Due Date: 12-3-19 | ||||||
|  |    | ||||||
|  |   password(x) | ||||||
|  |   Based on input asks for a username and password. | ||||||
|  |   If username and password do not exsist, function will ask user to input them. | ||||||
|  |   """ | ||||||
|  |   if x=="True": | ||||||
|  |     uiUName=input("Choose a username: ") | ||||||
|  |     n=len(uiUName) | ||||||
|  |      | ||||||
							
								
								
									
										1200
									
								
								ENG101/Python HW2/ExData2.csv
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1200
									
								
								ENG101/Python HW2/ExData2.csv
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								ENG101/Python HW2/HW2 Python.pdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								ENG101/Python HW2/HW2 Python.pdf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										198
									
								
								ENG101/Python HW2/HW2.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										198
									
								
								ENG101/Python HW2/HW2.py
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,198 @@ | |||||||
|  | def password(x): | ||||||
|  |   """ | ||||||
|  |   Python HW2: Pt. 1, Password | ||||||
|  |   Andrew Noah Woodlee | ||||||
|  |   ENG 101-06 | ||||||
|  |   Due Date: 12-3-19 | ||||||
|  |    | ||||||
|  |   password(x) | ||||||
|  |   Creates a username and password if both are not in database or certain conditions are met. | ||||||
|  |   """ | ||||||
|  |   import csv as c | ||||||
|  |   Passrow=[] | ||||||
|  |   UNamerow=[] | ||||||
|  |   if x==True: | ||||||
|  |     uiUName=input("Choose a username: ") | ||||||
|  |     lenUIUname=len(uiUName) | ||||||
|  |     if lenUIUname<6 or lenUIUname>16: | ||||||
|  |       print("Input must be between 6 and 16.") | ||||||
|  |       return False | ||||||
|  |     else: | ||||||
|  |       with open('userpass.csv', newline="") as userpass: | ||||||
|  |         ruiName=c.reader(userpass,delimiter=',') | ||||||
|  |         for row in ruiName: | ||||||
|  |           UNmamestr=str(uiUName) | ||||||
|  |           if UNmamestr==row[0]: | ||||||
|  |             print("Username already taken; pick another.") | ||||||
|  |             return False | ||||||
|  |     uiPassword=input("Choose a password: ") | ||||||
|  |     lenUIPasswd=len(uiPassword) | ||||||
|  |     with open('userpass.csv', newline='') as passstr: | ||||||
|  |       rUIpasswd=c.reader(passstr,delimiter=',') | ||||||
|  |       for PRow in rUIpasswd: | ||||||
|  |         uiPasswdStr=str(uiPassword) | ||||||
|  |         if uiPasswdStr==PRow[1]: | ||||||
|  |           print('Error, password not valid.') | ||||||
|  |           return False | ||||||
|  |     if lenUIPasswd<6 or lenUIPasswd>16: | ||||||
|  |       print("Password input must be between 6 and 16.") | ||||||
|  |       return False | ||||||
|  |     else: | ||||||
|  |       lowercheck=False | ||||||
|  |       uppercheck=False | ||||||
|  |       numck=False | ||||||
|  |       specialchr=False | ||||||
|  |       nochr=False | ||||||
|  |       special = [126,33,64,35,36,37,94,38,42,60,62] | ||||||
|  |       for i in uiPassword: | ||||||
|  |         if ord(i) in range(97,122): | ||||||
|  |           lowercheck = True | ||||||
|  |         elif ord(i) in range(64,91): | ||||||
|  |             uppercheck=True           | ||||||
|  |         elif ord(i) in range(48,57): | ||||||
|  |             numchk=True | ||||||
|  |         elif ord(i) in special: | ||||||
|  |           specialchr=True | ||||||
|  |       if not lowercheck: | ||||||
|  |         print("You did not include at least one lowercase letter.") | ||||||
|  |         return False | ||||||
|  |       if not uppercheck: | ||||||
|  |         print("You did not include at least one uppercase letter.") | ||||||
|  |         return False | ||||||
|  |       if not numchk: | ||||||
|  |         print("You did not include a number.") | ||||||
|  |         return False | ||||||
|  |       if not specialchr: | ||||||
|  |         print("You did not include a special character.") | ||||||
|  |         return False | ||||||
|  |       else: | ||||||
|  |         with open("userpass.csv",'a',newline='') as UPassA: | ||||||
|  |           WUnamePass = c.writer(UPassA, delimiter=',') | ||||||
|  |           UNamePWData=[uiUName,uiPassword] | ||||||
|  |           WUnamePass.writerow(UNamePWData) | ||||||
|  |           return True | ||||||
|  |      | ||||||
|  |   if x==False: | ||||||
|  |     uiUName=input("Choose a username: ") | ||||||
|  |     with open('userpass.csv', newline="") as userpass: | ||||||
|  |       ruiName=c.reader(userpass,delimiter=',') | ||||||
|  |       for UNrow in ruiName: | ||||||
|  |         if uiUName==UNrow[0]: | ||||||
|  |           uiNameck=True | ||||||
|  |         else: | ||||||
|  |           print("Username not found.") | ||||||
|  |           return False | ||||||
|  |     uiPassword=input("Choose a password: ") | ||||||
|  |     with open('userpass.csv', newline='') as passstr: | ||||||
|  |       rUIpasswd=c.reader(passstr,delimiter=',') | ||||||
|  |       for PWckrow in rUIpasswd: | ||||||
|  |         if uiPassword==PWckrow[1] and uiNameck: | ||||||
|  |           return True | ||||||
|  |         else: | ||||||
|  |           print("Password not found.") | ||||||
|  |           return False | ||||||
|  |      | ||||||
|  |  | ||||||
|  | def grocery_cost(x): | ||||||
|  |   """Andrew Noah Woodlee | ||||||
|  |      | ||||||
|  |  | ||||||
|  |   """ | ||||||
|  |    | ||||||
|  |  | ||||||
|  | def prime(n): | ||||||
|  |   """ | ||||||
|  |   Andrew Noah Woodlee | ||||||
|  |   ENG 101-06 | ||||||
|  |   Hw2 Python Prime | ||||||
|  |  | ||||||
|  |   Prime(n) | ||||||
|  |   Finds nth prime number in range(0,n) | ||||||
|  |   """ | ||||||
|  |   if n<1: | ||||||
|  |     return 0 | ||||||
|  |   n=int(n) | ||||||
|  |   if n==1: | ||||||
|  |     return 2 | ||||||
|  |   count = 1 | ||||||
|  |   num = 1 | ||||||
|  |   while(count < n): | ||||||
|  |     num +=2 | ||||||
|  |     if is_prime(num): | ||||||
|  |       count +=1 | ||||||
|  |     return num | ||||||
|  | def is_prime(num): | ||||||
|  |     factor = 2 | ||||||
|  |     while (factor * factor <= num): | ||||||
|  |         if num % factor == 0: | ||||||
|  |              return False | ||||||
|  |         factor +=1 | ||||||
|  |     return True | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | def IO(in_f,out_f): | ||||||
|  |   """ | ||||||
|  |   Python HW2, IO assignment | ||||||
|  |   Andrew Noah Woodlee | ||||||
|  |   ENG 101-06 | ||||||
|  |   Due Date: 11-14-19 | ||||||
|  |  | ||||||
|  |   IO(in_f,out_f) | ||||||
|  |   Input: | ||||||
|  |   in_f is the input filename | ||||||
|  |   out_f is the output filename | ||||||
|  |  | ||||||
|  |   Function reads data in input file and asks for number of points to average and outputs to output file. | ||||||
|  |   """ | ||||||
|  |  | ||||||
|  |   import csv as c | ||||||
|  |   C=[] | ||||||
|  |   try: | ||||||
|  |       # Try to open file | ||||||
|  |     with open(in_f, newline='') as In_file: | ||||||
|  |       Data = c.reader(In_file, delimiter=",") | ||||||
|  |       data = list(Data) | ||||||
|  |       p = len(data) | ||||||
|  |       del data | ||||||
|  |   except FileNotFoundError: # Error for file not found | ||||||
|  |     print('Could not find file!') | ||||||
|  |   for i in range(0,p): | ||||||
|  |     C.append([p]) | ||||||
|  |   with open(in_f,newline='') as in_f2: | ||||||
|  |     rf=c.reader(in_f2 , delimiter="*") | ||||||
|  |     Header=True | ||||||
|  |     for rowdata in rf: | ||||||
|  |       if Header: | ||||||
|  |         Head_Data=rowdata | ||||||
|  |         Header=False | ||||||
|  |       else: | ||||||
|  |         for i in range(0,p): | ||||||
|  |           C[i].append(float(rowdata[i])) | ||||||
|  |   while True: | ||||||
|  |     uiDataPts=input("How many points do you want me to average: ") | ||||||
|  |     try: | ||||||
|  |       uiDataPts=int(uiDataPts) | ||||||
|  |       if uiDataPts < 0: | ||||||
|  |         print("Input must be a positve integer, try again.") | ||||||
|  |         continue | ||||||
|  |       break | ||||||
|  |     except ValueError: | ||||||
|  |       print("Input must be an integer!") | ||||||
|  |   OData=[] | ||||||
|  |   """ | ||||||
|  |   with open(out_f, 'w', newline='') as outf: | ||||||
|  |     OData=c.writer(outf, delimiter=",") | ||||||
|  |     OData.writerow(Head_Data) | ||||||
|  |     L=len(C[0]) | ||||||
|  |     rout=[] | ||||||
|  |     n=int(L/uiDataPts) | ||||||
|  |     for i in range(0,n): | ||||||
|  |       avg=[0.0 for r in range(0,p)] | ||||||
|  |       for j in range(0,uiDataPts): | ||||||
|  |         for k in range(0,p): | ||||||
|  |           avg[k]+=C[k][i*uiDataPts+j] | ||||||
|  |       for k in range(0,p): | ||||||
|  |         avg[k]/=uiDataPts | ||||||
|  |         rout.append[str(avg[k]) | ||||||
|  |     OData.writerow(rout)""" | ||||||
							
								
								
									
										
											BIN
										
									
								
								ENG101/Python HW2/__pycache__/HW2.cpython-37.pyc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								ENG101/Python HW2/__pycache__/HW2.cpython-37.pyc
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										27
									
								
								ENG101/Python HW2/grocery.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										27
									
								
								ENG101/Python HW2/grocery.py
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,27 @@ | |||||||
|  | stock = { | ||||||
|  |     "tomato soup": 20, | ||||||
|  |     "cheese": 10, | ||||||
|  |     "bread": 3, | ||||||
|  |     "milk": 1, | ||||||
|  |     "butter": 7, | ||||||
|  |     "coffee": 8, | ||||||
|  |     "ice cream": 5, | ||||||
|  |     "orange juice":  12, | ||||||
|  |     "bacon": 2, | ||||||
|  |     "tortilla chips":  4, | ||||||
|  |     "ramen":  20 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | prices = { | ||||||
|  |     "tomato soup": 1.85, | ||||||
|  |     "cheese": 3.99, | ||||||
|  |     "bread": 2.50, | ||||||
|  |     "milk": 3.59, | ||||||
|  |     "butter": 1.99, | ||||||
|  |     "coffee": 5.99, | ||||||
|  |     "ice cream": 2.99, | ||||||
|  |     "orange juice":  2.50, | ||||||
|  |     "bacon": 5.49, | ||||||
|  |     "tortilla chips":  3.99, | ||||||
|  |     "ramen":  0.99 | ||||||
|  | } | ||||||
							
								
								
									
										18
									
								
								ENG101/Python HW2/t.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										18
									
								
								ENG101/Python HW2/t.py
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  | def nth_prime_number(n): | ||||||
|  |     if n==1: | ||||||
|  |         return 2 | ||||||
|  |     count = 1 | ||||||
|  |     num = 1 | ||||||
|  |     while(count < n): | ||||||
|  |         num +=2 #optimization | ||||||
|  |         if is_prime(num): | ||||||
|  |             count +=1 | ||||||
|  |     return num | ||||||
|  |  | ||||||
|  | def is_prime(num): | ||||||
|  |     factor = 2 | ||||||
|  |     while (factor * factor <= num): | ||||||
|  |         if num % factor == 0: | ||||||
|  |              return False | ||||||
|  |         factor +=1 | ||||||
|  |     return True | ||||||
							
								
								
									
										2
									
								
								ENG101/Python HW2/userpass.csv
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								ENG101/Python HW2/userpass.csv
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | daniel,eng101#%A | ||||||
|  | sullivan,Il0v3y*0 | ||||||
| 
 | 
							
								
								
									
										
											BIN
										
									
								
								ENG101/__pycache__/fileRW.cpython-37.pyc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								ENG101/__pycache__/fileRW.cpython-37.pyc
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										41
									
								
								ENG101/fileIO.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										41
									
								
								ENG101/fileIO.py
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,41 @@ | |||||||
|  | def fileIO(): | ||||||
|  |   """ | ||||||
|  | by Daniel Armentrout | ||||||
|  | ENG 101 – 06 | ||||||
|  | File I/O Practice Assignment | ||||||
|  | Due: 11/12/19 | ||||||
|  | Function to read in data from a file and average | ||||||
|  | 10 data points in two columns. Call function with: | ||||||
|  | fileIO() | ||||||
|  | """ | ||||||
|  |  | ||||||
|  |   import csv | ||||||
|  |   C1=[]   # Clear list for Column 1 data | ||||||
|  |   C2=[]   # Clear list for Column 2 data | ||||||
|  |     # Open and store data | ||||||
|  |   with open('ExData2.csv', newline='') as In_f: | ||||||
|  |     readf = csv.reader(In_f, delimiter="*") | ||||||
|  |     Header=True | ||||||
|  |     for row in readf: | ||||||
|  |       if Header: | ||||||
|  |         HData=row | ||||||
|  |         Header=False | ||||||
|  |       else:   | ||||||
|  |         C1.append(float(row[0])) | ||||||
|  |         C2.append(float(row[1]))   | ||||||
|  |   # Write out processed data | ||||||
|  |   with open('ExOut.csv', 'w', newline='') as Out_file: | ||||||
|  |     OData = csv.writer(Out_file, delimiter=",") | ||||||
|  |     OData.writerow(HData) | ||||||
|  |     L=len(C1) | ||||||
|  |     n=int(L/10)   | ||||||
|  |     for i in range(0,n): | ||||||
|  |       ave1=0 | ||||||
|  |       ave2=0 | ||||||
|  |       for j in range(0,10): | ||||||
|  |         ave1+=C1[i*10+j] | ||||||
|  |         ave2+=C2[i*10+j] | ||||||
|  |       ave1/=10 | ||||||
|  |       ave2/=10 | ||||||
|  |       rout=[str(ave1)]+[str(ave2)] | ||||||
|  |       OData.writerow(rout) | ||||||
							
								
								
									
										43
									
								
								ENG101/fileIO2.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										43
									
								
								ENG101/fileIO2.py
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,43 @@ | |||||||
|  | def fileIO2(): | ||||||
|  |   """ | ||||||
|  | by Daniel Armentrout | ||||||
|  | ENG 101 – 06 | ||||||
|  | File I/O Practice Assignment | ||||||
|  | Due: 11/12/19 | ||||||
|  | Function to read in data from a file and average | ||||||
|  | 10 data points in two columns. Call function with: | ||||||
|  | fileIO() | ||||||
|  | """ | ||||||
|  |  | ||||||
|  |   import csv | ||||||
|  |   C1=[]   # Clear list for Column 1 data | ||||||
|  |   C2=[]   # Clear list for Column 2 data | ||||||
|  |     # Open and store data | ||||||
|  |   with open('ExData2.csv', newline='') as In_f: | ||||||
|  |     readf = csv.reader(In_f, delimiter="*") | ||||||
|  |     Header=True | ||||||
|  |     for row in readf: | ||||||
|  |       if Header: | ||||||
|  |         HData=row | ||||||
|  |         Header=False | ||||||
|  |       else:   | ||||||
|  |         C1.append(float(row[0])) | ||||||
|  |         C2.append(float(row[1]))   | ||||||
|  |   # Write out processed data | ||||||
|  |   uiDataPts=input("How many points do you want me to average: ") | ||||||
|  |   x=int(uiDataPts) | ||||||
|  |   with open('ExOut.csv', 'w', newline='') as Out_file: | ||||||
|  |     OData = csv.writer(Out_file, delimiter=",") | ||||||
|  |     OData.writerow(HData) | ||||||
|  |     L=len(C1) | ||||||
|  |     n=int(L/x)   | ||||||
|  |     for i in range(0,n): | ||||||
|  |       ave1=0 | ||||||
|  |       ave2=0 | ||||||
|  |       for j in range(0,10): | ||||||
|  |         ave1+=C1[i*x+j] | ||||||
|  |         ave2+=C2[i*x+j] | ||||||
|  |       ave1/=x | ||||||
|  |       ave2/=x | ||||||
|  |       rout=[str(ave1)]+[str(ave2)] | ||||||
|  |       OData.writerow(rout) | ||||||
							
								
								
									
										54
									
								
								ENG101/fileRW.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										54
									
								
								ENG101/fileRW.py
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,54 @@ | |||||||
|  | def fileRW(in_f,out_f): | ||||||
|  |   """ | ||||||
|  | Python fileRW assignment | ||||||
|  | Andrew Noah Woodlee | ||||||
|  | ENG 101-06 | ||||||
|  | Due Date: 11-14-19 | ||||||
|  |  | ||||||
|  | fileRW(in_f,out_f) | ||||||
|  | Input: | ||||||
|  | in_f is the input filename | ||||||
|  | out_f is the output filename | ||||||
|  |  | ||||||
|  | Function averages data in input file and outputs to output file | ||||||
|  | """ | ||||||
|  |  | ||||||
|  |   import csv as c | ||||||
|  |   C1=[] | ||||||
|  |   C2=[] | ||||||
|  |   rowdata=[C1,C2] | ||||||
|  |   with open(in_f,newline='') as in_f2: | ||||||
|  |     rf=c.reader(in_f2 , delimiter="*") | ||||||
|  |     Header=True | ||||||
|  |     for rowdata in rf: | ||||||
|  |       if Header: | ||||||
|  |         Head_Data=rowdata | ||||||
|  |         Header=False | ||||||
|  |       else: | ||||||
|  |         C1.append(float(rowdata[0])) | ||||||
|  |         C2.append(float(rowdata[1])) | ||||||
|  |   while True: | ||||||
|  |     uiDataPts=input("How many points do you want me to average: ") | ||||||
|  |     try: | ||||||
|  |       uiDataPts=int(uiDataPts) | ||||||
|  |       if uiDataPts < 0: | ||||||
|  |         print("Input must be a positve integer, try again.") | ||||||
|  |         continue | ||||||
|  |       break | ||||||
|  |     except ValueError: | ||||||
|  |       print("Input must be an integer!") | ||||||
|  |   with open(out_f, 'w', newline='') as outf: | ||||||
|  |     OData=c.writer(outf, delimiter=",") | ||||||
|  |     OData.writerow(Head_Data) | ||||||
|  |     L=len(C1) | ||||||
|  |     n=int(L/uiDataPts) | ||||||
|  |     for i in range(0,n): | ||||||
|  |       avg1=0 | ||||||
|  |       avg2=0 | ||||||
|  |       for j in range(0,uiDataPts): | ||||||
|  |         avg1+=C1[i*uiDataPts+j] | ||||||
|  |         avg2+=C2[i*uiDataPts+j] | ||||||
|  |       avg1/=uiDataPts | ||||||
|  |       avg2/=uiDataPts | ||||||
|  |       rout=[str(avg1)]+[str(avg2)] | ||||||
|  |       OData.writerow(rout) | ||||||
							
								
								
									
										32
									
								
								ENG101/fileread.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										32
									
								
								ENG101/fileread.py
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,32 @@ | |||||||
|  | def fileread(x): | ||||||
|  |     """ | ||||||
|  |     Andrew Noah Woodlee | ||||||
|  |     Assignment: fileread | ||||||
|  |     ENG 101-06 | ||||||
|  |     Due Date: 11-12-19 | ||||||
|  |     Reads from x and  | ||||||
|  |     """ | ||||||
|  |     import statistics as stats | ||||||
|  |     import csv as c | ||||||
|  |     Data=[] | ||||||
|  |     uinput=input("Does the file have column header information (y/n)? ") | ||||||
|  |     with open(x,newline='') as In_f: | ||||||
|  |       FileData=c.reader(In_f,delimiter=',') | ||||||
|  |       if uinput=="y": | ||||||
|  |         Header=True | ||||||
|  |       elif uinput=='n': | ||||||
|  |         Header=False | ||||||
|  |       for column in FileData: | ||||||
|  |         if Header: | ||||||
|  |           Header=False | ||||||
|  |           HeaderInfo=column | ||||||
|  |         else: | ||||||
|  |           Data.append(float(column(1))) | ||||||
|  |       a=len(Data) | ||||||
|  |       b=stats.mean(Data) | ||||||
|  |       c=min(Data) | ||||||
|  |       ma=max(Data) | ||||||
|  |       standdev=stats.stdev(Data) | ||||||
|  |       print(x,'Column 2 has a minimum of ',c,' and a maximum of ',ma) | ||||||
|  |       print(x,'Column 2 has a mean of ',b, ' with ',a,' data points') | ||||||
|  |       print(x,'Column 2 standard deviation is ', standdev) | ||||||
							
								
								
									
										14
									
								
								ENG101/t.csv
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								ENG101/t.csv
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | Strain (uin/in),Stress (MPa) | ||||||
|  | 13.650000000000002,16.154053825055556 | ||||||
|  | 40.65,20.76858586476666 | ||||||
|  | 67.65,28.272339452922225 | ||||||
|  | 94.65,33.685621394722226 | ||||||
|  | 121.65,41.831223109 | ||||||
|  | 148.65000000000003,47.488474106444464 | ||||||
|  | 175.65,53.116996719000014 | ||||||
|  | 202.65,59.66213753733336 | ||||||
|  | 229.65,65.11012943733334 | ||||||
|  | 256.65,70.46155364433334 | ||||||
|  | 283.65,77.92545838599995 | ||||||
|  | 310.65,85.78060317233333 | ||||||
|  | 337.65,87.83654887277778 | ||||||
| 
 | 
							
								
								
									
										120
									
								
								ENG101/test.csv
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										120
									
								
								ENG101/test.csv
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,120 @@ | |||||||
|  | Strain (uin/in),Stress (MPa) | ||||||
|  | 1,.,6,5,1,1,.,5,3,6,8,3,8,8,5,7,1 | ||||||
|  | 4,.,6,5,1,5,.,1,0,5,8,0,6,5,7,6,4 | ||||||
|  | 7,.,6,5,2,1,.,4,5,1,0,9,5,3,1,4,6,0,0,0,0,3 | ||||||
|  | 1,0,.,6,5,1,4,.,6,0,9,8,9,8,0,1,3,1,0,0,0,0,2 | ||||||
|  | 1,3,.,6,5,1,5,.,3,0,5,4,7,8,0,6,0,4 | ||||||
|  | 1,6,.,6,5,1,7,.,2,6,6,5,3,5,6,9,9,0,9,9,9,9,7 | ||||||
|  | 1,9,.,6,5,1,2,.,4,3,7,2,1,5,8,5,2,4 | ||||||
|  | 2,2,.,6,5,2,1,.,6,4,7,2,4,9,2,6,4 | ||||||
|  | 2,5,.,6,5,1,6,.,0,2,6,3,6,6,7,8,8,4 | ||||||
|  | 2,8,.,6,5,1,9,.,9,0,4,2,0,7,8,1,7,6,0,0,0,0,3 | ||||||
|  | 3,1,.,6,5,1,6,.,5,8,3,5,4,9,4,5,2,4 | ||||||
|  | 3,4,.,6,5,1,4,.,7,6,2,1,7,8,0,6,0,5,9,9,9,9,8 | ||||||
|  | 3,7,.,6,5,2,4,.,4,4,0,8,5,5,7,4,6 | ||||||
|  | 4,0,.,6,5,2,2,.,2,9,5,5,1,5,4,6,7,9,9,9,9,9,8 | ||||||
|  | 4,3,.,6,5,2,3,.,5,8,1,8,1,6,1,9,2,5,9,9,9,9,8 | ||||||
|  | 4,6,.,6,5,2,0,.,4,4,8,7,5,0,2,2,4 | ||||||
|  | 4,9,.,6,5,2,6,.,2,3,1,3,9,3,5,8,5 | ||||||
|  | 5,2,.,6,5,1,8,.,6,6,9,0,0,6,2,3,6,7 | ||||||
|  | 5,5,.,6,5,1,8,.,6,1,1,0,0,3,8,6,4,8,0,0,0,0,4 | ||||||
|  | 5,8,.,6,5,2,7,.,9,9,8,1,4,4,2,0,8,9,9,9,9,9,6 | ||||||
|  | 6,1,.,6,5,2,9,.,7,5,1,5,0,4,9,0,3,0,0,0,0,0,4 | ||||||
|  | 6,4,.,6,5,2,3,.,0,0,7,9,7,8,0,6,5,8,9,9,9,9,8 | ||||||
|  | 6,7,.,6,5,2,5,.,4,7,9,4,4,8,0,6,5,5 | ||||||
|  | 7,0,.,6,5,2,7,.,7,7,4,0,8,8,8,4,0,1 | ||||||
|  | 7,3,.,6,5,3,8,.,5,3,3,7,4,8,9,5,8,0,0,0,0,0,4 | ||||||
|  | 7,6,.,6,5,3,6,.,2,9,4,7,4,4,5,2,6 | ||||||
|  | 7,9,.,6,5,2,7,.,0,0,0,3,9,3,6,4,3,9,9,9,9,9,5 | ||||||
|  | 8,2,.,6,5,2,9,.,0,8,7,8,3,7,7,9,6,0,0,0,0,0,2 | ||||||
|  | 8,5,.,6,5,2,8,.,0,6,4,5,4,4,0,4,5,9,9,9,9,9,8 | ||||||
|  | 8,8,.,6,5,3,4,.,9,1,2,3,5,4,8,7,3 | ||||||
|  | 9,1,.,6,5,3,5,.,8,3,6,4,3,0,1,4,5 | ||||||
|  | 9,4,.,6,5,3,3,.,4,5,6,2,3,9,5,8,3,9,9,9,9,9,5 | ||||||
|  | 9,7,.,6,5,3,5,.,5,1,6,4,7,4,9,0,5 | ||||||
|  | 1,0,0,.,6,5,3,8,.,0,0,9,2,7,7,5,3,8,5 | ||||||
|  | 1,0,3,.,6,5,3,6,.,5,2,2,3,2,3,2,8,3,9,9,9,9,9,5 | ||||||
|  | 1,0,6,.,6,5,3,1,.,7,6,5,1,1,0,3,8,1 | ||||||
|  | 1,0,9,.,6,5,3,9,.,2,6,9,4,7,6,6,3,1,9,9,9,9,9 | ||||||
|  | 1,1,2,.,6,5,4,0,.,6,2,7,6,7,6,1,4,4,9,9,9,9,9,5 | ||||||
|  | 1,1,5,.,6,5,4,1,.,7,9,2,5,9,2,5,9,1 | ||||||
|  | 1,1,8,.,6,5,3,8,.,8,2,0,5,6,0,9,8,6 | ||||||
|  | 1,2,1,.,6,5,4,2,.,2,9,8,2,5,7,6,2,4 | ||||||
|  | 1,2,4,.,6,5,4,4,.,9,6,2,5,1,6,2,6,1,9,9,9,9,9,4 | ||||||
|  | 1,2,7,.,6,5,4,0,.,8,8,6,8,6,2,3,1,9 | ||||||
|  | 1,3,0,.,6,5,4,4,.,2,3,7,3,1,3,1,0,7,0,0,0,0,0,6 | ||||||
|  | 1,3,3,.,6,5,4,3,.,5,8,5,7,5,2,3,1,4,9,9,9,9,9 | ||||||
|  | 1,3,6,.,6,5,4,8,.,7,0,8,7,4,8,9,1,0,0,0,0,0,0,4 | ||||||
|  | 1,3,9,.,6,5,5,1,.,2,4,4,6,7,0,3,2,8,9,9,9,9,9,5 | ||||||
|  | 1,4,2,.,6,5,4,7,.,6,3,6,7,5,0,8,5,6,9,9,9,9,9,6 | ||||||
|  | 1,4,5,.,6,5,4,0,.,3,5,5,6,7,0,1,3,9,9,9,9,9,9,4 | ||||||
|  | 1,4,8,.,6,5,5,1,.,8,5,3,3,9,1,1,0,0,0,0,0,0,1 | ||||||
|  | 1,5,1,.,6,5,4,4,.,5,8,5,8,6,0,8,1,9 | ||||||
|  | 1,5,4,.,6,5,4,2,.,6,0,6,3,5,5,3,0,3 | ||||||
|  | 1,5,7,.,6,5,4,8,.,9,9,2,9,4,6,1,4,4 | ||||||
|  | 1,6,0,.,6,5,5,1,.,4,1,1,8,7,3,3,5,6 | ||||||
|  | 1,6,3,.,6,5,5,3,.,5,1,6,0,8,5,0,4,5 | ||||||
|  | 1,6,6,.,6,5,5,3,.,2,4,0,9,9,8,8,6,3,9,9,9,9,9 | ||||||
|  | 1,6,9,.,6,5,5,0,.,8,1,0,5,4,3,6,4,6,0,0,0,0,0,6 | ||||||
|  | 1,7,2,.,6,5,5,1,.,3,3,9,0,6,4,8,7,8 | ||||||
|  | 1,7,5,.,6,5,5,2,.,7,0,5,1,5,4,0,7,4,0,0,0,0,0,6 | ||||||
|  | 1,7,8,.,6,5,5,1,.,8,0,1,6,4,1,7,9,6 | ||||||
|  | 1,8,1,.,6,5,5,1,.,7,6,9,5,4,2,5,2,5 | ||||||
|  | 1,8,4,.,6,5,5,0,.,1,7,0,2,1,6,7,2,1,9,9,9,9,9 | ||||||
|  | 1,8,7,.,6,5,6,2,.,6,9,9,7,2,2,9,2,1 | ||||||
|  | 1,9,0,.,6,5,5,6,.,3,4,3,3,9,9,2,3,3 | ||||||
|  | 1,9,3,.,6,5,5,8,.,9,9,0,5,1,0,6,0,1,9,9,9,9,9 | ||||||
|  | 1,9,6,.,6,5,5,8,.,9,5,3,9,0,7,1,0,5 | ||||||
|  | 1,9,9,.,6,5,5,8,.,8,2,0,2,0,6,4,0,3 | ||||||
|  | 2,0,2,.,6,5,5,8,.,6,2,7,0,9,1,3,0,8,0,0,0,0,0,4 | ||||||
|  | 2,0,5,.,6,5,6,1,.,9,1,5,5,9,0,3,4,7,0,0,0,0,1 | ||||||
|  | 2,0,8,.,6,5,7,0,.,5,5,2,5,5,9,0,5,5,9,9,9,9,9 | ||||||
|  | 2,1,1,.,6,5,5,9,.,4,3,8,2,6,8,3,4,3,0,0,0,0,0,4 | ||||||
|  | 2,1,4,.,6,5,5,3,.,3,1,7,7,0,5,4,3,8,9,9,9,9,9,4 | ||||||
|  | 2,1,7,.,6,5,5,7,.,4,4,9,3,4,3,5,2,6,9,9,9,9,9,6 | ||||||
|  | 2,2,0,.,6,5,6,3,.,0,4,4,1,5,9,3,1,1 | ||||||
|  | 2,2,3,.,6,5,6,6,.,0,5,4,5,3,9,7,4,4 | ||||||
|  | 2,2,6,.,6,5,6,2,.,4,9,3,2,5,9,2,1,2 | ||||||
|  | 2,2,9,.,6,5,6,7,.,6,2,5,4,4,2,6,7,1,9,9,9,9,9 | ||||||
|  | 2,3,2,.,6,5,6,3,.,3,7,8,0,6,2,4,9,1,9,9,9,9,9 | ||||||
|  | 2,3,5,.,6,5,6,6,.,8,4,5,3,2,5,5,4,9 | ||||||
|  | 2,3,8,.,6,5,6,5,.,6,4,7,2,9,2,9,6 | ||||||
|  | 2,4,1,.,6,5,7,3,.,4,5,3,7,3,9,4,6,9 | ||||||
|  | 2,4,4,.,6,5,6,4,.,0,3,9,8,6,1,6,4,1,9,9,9,9,9 | ||||||
|  | 2,4,7,.,6,5,6,4,.,5,7,0,9,7,3,9,0,1 | ||||||
|  | 2,5,0,.,6,5,6,6,.,9,9,2,0,3,8,5,9,7 | ||||||
|  | 2,5,3,.,6,5,7,5,.,7,6,0,3,0,9,8,0,6 | ||||||
|  | 2,5,6,.,6,5,7,2,.,2,8,1,1,7,5,2,2,7,0,0,0,0,2 | ||||||
|  | 2,5,9,.,6,5,6,7,.,4,4,7,7,4,9,4,1,9 | ||||||
|  | 2,6,2,.,6,5,7,2,.,6,8,5,5,2,3,1,0,1 | ||||||
|  | 2,6,5,.,6,5,7,5,.,9,7,1,8,1,8,5,6,8 | ||||||
|  | 2,6,8,.,6,5,7,4,.,4,0,4,5,3,2,5,3,7,9,9,9,9,8 | ||||||
|  | 2,7,1,.,6,5,7,0,.,8,1,5,1,2,3,9,8,7 | ||||||
|  | 2,7,4,.,6,5,7,3,.,2,6,4,0,2,3,9,5,2 | ||||||
|  | 2,7,7,.,6,5,8,0,.,5,0,0,5,7,0,7,6,7 | ||||||
|  | 2,8,0,.,6,5,7,9,.,8,6,7,9,9,7,5,2,9,0,0,0,0,1 | ||||||
|  | 2,8,3,.,6,5,7,6,.,7,9,4,7,1,1,4,3,3 | ||||||
|  | 2,8,6,.,6,5,8,3,.,6,1,9,3,4,9,3,3 | ||||||
|  | 2,8,9,.,6,5,8,1,.,9,0,2,7,6,4,0,5,6 | ||||||
|  | 2,9,2,.,6,5,8,2,.,6,9,2,9,3,6,0,8,0,9,9,9,9,8 | ||||||
|  | 2,9,5,.,6,5,7,1,.,8,7,1,6,4,8,3,3,8,9,9,9,9,9 | ||||||
|  | 2,9,8,.,6,5,8,5,.,2,4,5,9,0,9,3,9,2,9,9,9,9,9 | ||||||
|  | 3,0,1,.,6,5,8,6,.,7,2,7,3,2,3,5,1 | ||||||
|  | 3,0,4,.,6,5,7,9,.,7,5,9,7,2,7,1,4,6,9,9,9,9,9 | ||||||
|  | 3,0,7,.,6,5,8,0,.,6,8,8,7,6,0,0,1,5,9,9,9,9,9 | ||||||
|  | 3,1,0,.,6,5,8,6,.,0,0,1,4,0,3,1,1 | ||||||
|  | 3,1,3,.,6,5,8,7,.,7,0,0,4,8,9,4,1,2 | ||||||
|  | 3,1,6,.,6,5,8,8,.,2,3,0,2,1,4,8,1,7 | ||||||
|  | 3,1,9,.,6,5,8,8,.,8,6,8,9,9,0,8,2,5,9,9,9,9,9 | ||||||
|  | 3,2,2,.,6,5,8,8,.,8,0,2,6,1,0,3,2 | ||||||
|  | 3,2,5,.,6,5,8,7,.,9,5,4,5,7,8,1,7,2,9,9,9,9,9 | ||||||
|  | 3,2,8,.,6,5,8,0,.,3,8,5,1,4,7,1,6 | ||||||
|  | 3,3,1,.,6,5,8,2,.,0,9,2,4,7,7,3,5,3 | ||||||
|  | 3,3,4,.,6,5,8,2,.,7,2,9,5,3,9,7,8,8 | ||||||
|  | 3,3,7,.,6,5,9,3,.,6,5,6,2,2,1,2,1,1,9,9,9,9,9 | ||||||
|  | 3,4,0,.,6,5,8,9,.,0,5,7,6,6,0,0,7,3 | ||||||
|  | 3,4,3,.,6,5,9,0,.,9,4,5,8,3,1,8,8,8,9,9,9,9,9 | ||||||
|  | 3,4,6,.,6,5,8,8,.,2,1,2,0,6,6,9,1,1,0,0,0,0,1 | ||||||
|  | 3,4,9,.,6,5,9,5,.,4,9,5,4,1,7,2,9,6 | ||||||
|  | 3,5,2,.,6,5,8,7,.,6,6,7,7,9,4,7,2,5 | ||||||
|  | 3,5,5,.,6,5,9,6,.,2,6,7,6,2,8,0,0,8,0,0,0,0,2 | ||||||
| 
 | 
		Reference in New Issue
	
	Block a user
	 Andrew W
					Andrew W