initial commit

This commit is contained in:
dymik739 2023-02-25 23:11:14 +02:00
commit ef1a8a155a
2 changed files with 88 additions and 0 deletions

71
main.py Normal file
View File

@ -0,0 +1,71 @@
import os, sys
def avg(a):
return sum(a) / len(a)
def process_table(file):
table = [["L2", "L1", "t2", "m", "Δm", "t2i", "v1", "(v1)^2", "a", "ai", "❬a❭", "A", "B"]]
supported_args = ["r"]
config = {"r": 2}
r = config["r"]
with open(file, "r", encoding = "UTF-8") as f:
for i in f:
if i.rstrip("\r\n") != "":
if i.rstrip("\r\n")[0] == "#" or i.rstrip("\r\n")[0] == ";":
print(f"Special line: {i}")
try:
cline = i.rstrip("\r\n")[1:].split()
if len(cline) == 2 and cline[0] in supported_args:
config[cline[0]] = int(cline[1])
except:
pass
else:
print(f"Table line: {i}")
table.append(list(map(lambda x: float(x), i.rstrip("\r\n").replace(",", ".").split())))
for i in table[1:]:
# first table
i.append(round(i[0] / i[2], r))
i.append(round(i[6]**2, r))
i.append(round((i[0]**2)/(2*(i[2]**2)*i[1]), r))
# precalculations
preset_L2 = table[1][0]
preset_L1 = table[1][1]
preset_ai = [(preset_L2**2) / (2 * (avg(list(zip(*table[1:][i:i+3]))[5])**2) * preset_L1) for i in range(0, 12, 3)]
for i in range(4):
for k in range(3):
table[1 + i*3 + k].append(round(preset_ai[i], r))
preset_avg_a = [(preset_L2**2) / (2 * (avg(list(zip(*table[1:][i:i+3]))[9])**2) * preset_L1) for i in range(0, 12, 3)]
for i in range(4):
for k in range(3):
table[1 + i*3 + k].append(round(preset_avg_a[i], r))
for i in table[1:]:
i.append(round(i[4]/(2*i[3]), r))
i.append(round(i[10]/(9.81-i[10]), r))
w = max([max(list(map(lambda x: len(str(x)), i))) for i in table])
print("\n".join([" | ".join(list(map(lambda x: str(x).center(w), i))) for i in table]))
'''
if len(sys.argv) == 2 and os.path.exists(sys.argv[1]):
if os.path.isdir(sys.argv[1]):
for i in os.listdir(sys.argv[1]):
process_table(sys.argv[1] + i)
else:
process_table(sys.argv[1])
elif os.path.exists("input_tables/") and os.path.isdir("input_tables/"):
for i in os.listdir("input_tables/"):
process_table("input_tables/" + i)
else:
print("Не знайдено жодного файлу для обробки")
'''
if len(sys.argv) == 2 and os.path.exists(sys.argv[1]):
process_table(sys.argv[1])
else:
print("Будь ласка, вкажіть файл для обробки")

17
sample_data.txt Normal file
View File

@ -0,0 +1,17 @@
# r 7
20 0,227 0,269 49 20,2 0,275
20 0,227 0,265 49 20,2 0,299
20 0,227 0,262 49 20,2 0,310
20 0,207 0,287 49 16,1 0,333
20 0,207 0,271 49 16,1 0,327
20 0,207 0,280 49 16,1 0,322
20 0,187 0,337 49 10,2 0,373
20 0,187 0,311 49 10,2 0,365
20 0,187 0,298 49 10,2 0,376
20 0,157 0,321 49 28,0 0,265
20 0,157 0,325 49 28,0 0,247
20 0,157 0,325 49 28,0 0,288