|
Новичок
Регистрация: 09.03.2010
Сообщений: 3
Провел на форуме: 8042
Репутация:
3
|
|
Python
Nition, лови
Код:
import re
class komplex:#собственно сам класс и функции для работы с комплексными числами
def __init__(self):
a,b,c,d=0,0,0,0
def summa(self, a,b,c,d): #ф-я суммы
s_d=a+c
s_m=b+d
return s_d, s_m, "i"
def raznost(self, a,b,c,d): #ф-я разности
r_d=a-c
r_m=c-d
return r_d, r_m,"i"
def umnozhenie(self, a,b,c,d): # умножение (Кэп?! =) )
u_d=a*c-b*d
u_m=b*c+a*d
return u_d, u_m,"i"
def delenie(self, a,b,c,d): # деление
d_d=(a*c+b*d)/(c*c+d*d)
d_m=(b*c-a*d)/(c*c+d*d)
return d_d, d_m,"i"
def modul(self,a,b): # модуль
if a<0:
a=a*(-1)
if b<0:
b=b*(-1)
return a,b,"i"
classinstance=komplex()
def vesh(line):#функция вычленяющая вещественную часть
match = re.search("^-?[0-9]*|(?<=[+-])",line)
return int(match.group(0))
def mnim(line):#функция вычленяющая мнимую часть
match2 = re.search("(?<=[+-])\d+(?=i)",line)
return int(match2.group(0))
f1=open("input.txt", "r") #файл содержащий числа
f2=open("output.txt", "w") # файл в кот. выводим результат
line1=f1.readline() #читаем первое число, записанное в первой строке
a=vesh(line1) #a - вещественная часть первого числа
b=mnim(line1) #b - мнимая часть второго числа
line2=f1.readline()
c=vesh(line2)
d=mnim(line2)
main=classinstance.summa(a,b,c,d) # вызовем например ф-ю сложения [подставить название необходимой самостоятельно]
if main[1]>=0: # если мнимая часть положительна запишем в файл с +
f2.write(str(main[0]))
f2.write("+")
f2.write(str(main[1]))
f2.write(str(main[2]))
print(main[0],"+",main[1],main[2])
else: # если нет - минус поставиться сам
f2.write(str(main[0]))
f2.write(str(main[1]))
f2.write(str(main[2]))
print(main[0],main[1],main[2])
#а вот так вызывается модуль
#main=classinstance.modul(a,b)
#f2.write(str(main[0]))
#f2.write("+")
#f2.write(str(main[1]))
#f2.write(str(main[2]))
f1.close() # закрываем файлы
f2.close()
P.S. работу с бинарными файлами не реализовал - не было времени гуглить, а сходу не вспомню как, но думаю там не будет сильно сложно...
P.P.S. ах да, забыл добавить, файл input.txt формируется в 2 строки: в первой строке указываем первое число, а во второй - второе, и, что немаловажно, без пробелов.
P.P.P.S. не знаю, бывают ли целая и мнимая части комплексного числа дробными, но у меня они целые. (редактируем регулярные выражения для дробного).
Последний раз редактировалось mozgpanic; 17.04.2010 в 18:17..
|