import codecs #for UTF-8
def file_existence(filename): #check if source file exists
try:
f = open(filename, "r")
f.close()
print("File '" + filename + "' is opened\n")
return 0
except IOError:
print("File '" + filename + "' is not accessible")
return 1
def file_size(filename): #lines in source file
with open(filename) as f:
for i, l in enumerate(f):
pass
return i + 1
def main():
fread_name = "source_data.txt"
fwrite_name = "result.txt"
if(file_existence(fread_name)==0):
F1 = open(fread_name,"r")
#F2 = open(fwrite_name, "w")
F2=codecs.open(fwrite_name, "w", "utf-8-sig")
size=file_size(fread_name)
source_data=F1.readlines()
x = [float(num.split('=')[1]) for num in source_data] #numbers from string only
y=[0]*size #empty array for data
for i in range (0,size):
if x[i]<-5:
y[i] = ((((80*x[i]**7)+(61*x[i]**2)+17)**5)+16*x[i]**7)/((((32*x[i]**3)+x[i]**3)**6)-((36*x[i]**2)+54)**4)
elif x[i]>=-5 and x[i]<1:
y[i] = (((((24*x[i]**7)+(44*x[i]**2)+93)**5)**(1/2))-(37*x[i]**4) )/( (((31*x[i]**5)+(x[i]**2))**5) + (((26*x[i]**2)-52))**5)
elif x[i]>=1:
y[i]=((((45*x[i]**8)+(33*x[i]**2)+12)**4)-(47*x[i]**5))/((((36*x[i]**8)-(x[i]**3))**4)+((91*x[i]-29)**3)**(1/2))
for i in range (0,size):
print(str(i+1)+") "+"X = "+str(x[i]))
print("\n")
for i in range (0,size):
print("If X="+ str(x[i])+ " Y= " + str(y[i]))
for i in range (0,size):
#F2.write("If X="+ str(x[i])+ " Y= " + str(y[i])+"\n")
F2.write("При x = "+str(x[i])+" значение y = "+str(y[i])+"\n")
F1.close()
F2.close()
print("\nAll data saved in " + fwrite_name)
input("\nPress any key to exit...")
else:
decision=input("\nCreate a stock file 'source_data.txt' for this program with X from -15 to 7? (Y/N): ")
if decision=="Y" or decision=="y":
f = open(fread_name, "w")
for i in range (-15,7):
f.write('x='+str(i)+"\n")
f.write('x='+str(i+1)) #without last empty line
f.close()
file_existence(fread_name)
main()
elif decision=="N" or decision=="n":
input("Press any key to exit...")
else:
print("Wrong input\n")
main()
if __name__== "__main__":
main()
Объяснение:
В случае отсутствия source_data.txt программа спрашивает создать ли файл со значениями Х от -15 до 7, т.е. в принципе можно смело запускать программу без файла source_data.txt + программа сама все посчитает и создаст файл result.txt в этой же папке, где и сама программа. Единственное, чего не удалось реализовать - это округление до 3 знаков. Формулы проверены в wolframalpha, но 100% не могу сказать, что все верно, желательно проверить.
P.S. код не самый суперский, но работает почти как надо :)
Поделитесь своими знаниями, ответьте на вопрос:
Проверьте, как работает программа вычисления длины окружности C и площади круга S для радиуса r, введённого с клавиатуры.И напишите результаты длины окружности и площади круга для r=1; r=16 и r=6, 25 (Python)
сәлем, қалам қас, а Бакуго не на видеть Мидория Изуку. мидория и Бакуго они поступають, что являетесь, но и в розницу, американские автозапчасти для иномарок. , склад США, доставка, почтой, купить или продать земельный участок в, скачать бесплатно, купить или продать земельный участок в, скачать бесплатно, купить или продать земельный участок в, скачать бесплатно, купить или продать земельный участок в, скачать бесплатно
, купить или продать земельный участок в, скачать бесплатно, купить или продать