# -*- coding: cp1251 -*-
# Програма отримує дані з наступних файлів
# Oneselfcostdecrease.dat - зниження собівартості від впровадження інновації на одиницю
# Oneprofitincrease.dat - приріст прибутку від впровадження інновації на одиницю
# Onequantitydecrease.dat - умовне зменшення кількості працюючих від впровадження інновації на одиницю
# Onematerialdecrease.dat - економія матеріальних ресурсів від впровадження інновації на одиницю
# Oneexpenditure.dat - витрати на одиницю впровадження інновації
# В кінці файлу даних повинна бути порожня строка
# Відкриваємо базу даних для читання
Oneselfcostdecrease = file("Oneselfcostdecrease.dat","r")
Oneprofitincrease = file("Oneprofitincrease.dat","r")
Onequantitydecrease = file("Onequantitydecrease.dat","r")
Onematerialdecrease = file("Onematerialdecrease.dat","r")
Oneexpenditure = file("Oneexpenditure.dat","r")
# Ініціалізуємо лічильник для обмеження кількості ітерацій
[b]n = "string"[/b]
# Ініціалізуємо лічильник помилок
Error = 0
# Ініціалізуємо лічильник кількості оброблених інновацій
Total = 0
from Tkinter import *
#ф-ция, которая вызывается при нажатии на Read
def read_entry():
Quantity = eHello.get()
# Перевірка на кінець файлу
[b] while n<>"":[/b]
# Зчитуємо значення та перевіряємо співпадіння назв інновацій
Name = Oneselfcostdecrease.readline()
one = Oneselfcostdecrease.readline()
if Oneprofitincrease.readline()<> Name:
print "Помілка! Не співпадають назви інновації у Oneprofitincrease.dat"
Error = Error+1
two = Oneprofitincrease.readline()
if Onequantitydecrease.readline()<> Name:
print "Помілка! Не співпадають назви інновації у Onequantitydecrease.dat"
Error = Error+1
three = Onequantitydecrease.readline()
if Onematerialdecrease.readline()<> Name:
print "Помілка! Не співпадають назви інновації у Onematerialdecrease.dat"
Error = Error+1
four = Onematerialdecrease.readline()
if Oneexpenditure.readline()<> Name:
print "Помілка! Не співпадають назви інновації у Oneexpenditure.dat"
Error = Error+1
five = Oneexpenditure.readline()
# Задаємо значення лічильнику для перевірки на кінець файлу
n = five
# Перевірка на кінець файлу
if n <> "":
# Задаємо значення лічильнику кількості оброблених інновацій
Total = Total+1
#Позбавляємось символу кінця строки
one = one.strip()
two = two.strip()
three = three.strip()
four = four.strip()
five = five.strip()
#Конвертуємо значення у числову форму
one = float(one)
two = float(two)
three = float(three)
four = float(four)
five = float(five)
#Обчислюємо та виводимо на екран необхідні значення
print
print Name
print "Сумарне зниження собівартості........... ", one*Quantity,"грн."
print "Сумарний приріст прибутку............... ", two*Quantity,"грн."
print "Зменшення чисельності працівників....... ", three*Quantity,"чол."
print "Економія ресурсів....................... ", four*Quantity,"кг."
Nfinance = five*Quantity
print "Потрібне фінансування................... ", Nfinance,"грн."
Eefect = two*Quantity-five*Quantity
print "Загальний економічний ефект............. ", Eefect,"грн."
print "Ефективність інвестування............... ", Eefect/Nfinance
print "_______________________________________________________"
# Повідомляємо користувача про помилки
if Error<>0:
print
print "Увага! Під час роботи програми зафіксовано", Error, "помилок."
print "Результати можуть бути невірними."
# Повідомляємо користувача про кількість оброблених інновацій
print
print "Оброблено інновацій:", Total
print "Обсяг впровадження :", Quantity
# Закриваємо базу даних
Oneselfcostdecrease.close()
Oneprofitincrease.close()
Onequantitydecrease.close()
Onematerialdecrease.close()
Oneexpenditure.close()
top = Tk()
dir(top)
F = Frame(top)
F.pack()
# Підпис поля вводу
lHello = Label(F, text="Input")
lHello.pack()
lHello.pack(side="left")
#Поле вводу
fEntry = Frame(F, border=1)
eHello = Entry(fEntry)
fEntry.pack(side="left", expand="true")
eHello.pack(side="left", expand="true")
#кнопка чтения
bRead = Button(F, text="Read", command=read_entry)
bRead.pack()
top.mainloop()
Елки палки - почему при запуске Питон ругается что n (выделено черным) используется до ее определения?????????? Я же n инициализировал до определения функции……
Exception in Tkinter callback
Traceback (most recent call last):
File “C:\Python24\lib\lib-tk\Tkinter.py”, line 1345, in __call__
return self.func(*args)
File “C:\Python24\Python.txt”, line 34, in read_entry
while n<>“”:
UnboundLocalError: local variable ‘n’ referenced before assignment