ТРИЗ-скрипт расчета идеальности технической системы
Развитие технической системы (ТС) определяется по повышению ее степени идеальности в направлениях увеличения качества функционирования и снижения фактора расплаты. Повышение идеальности достигается как за
счет совершенствования существующих конструкций, так и за счет радикальных изменений конструкций, создания принципиально новых.
На практике я пользуюсь экспертной оценкой идеальности как отношение функциональной значимости (ФЗ) к затратной значимости (ЗЗ). Значимость системы оценивается как сумма значимостей составляющих ее элементов. А
значимость каждого элемента – по 10-бальной шкале. Еще в знаменатель добавил проблемную значимость (ПЗ), т.к., по моему мнению, проблемы – это тоже затраты. Еще каждую значимость умножил на весовой коэффициент. Формула имеет такой вид:
И = К1∑ФЗ/(К2∑ПЗ+К3∑ЗЗ)
Чтобы получить значение коэффициента идеальности, сначала заполняется таблица скрипта. В левый крайний список вводятся названия компонентов ТС. При вводе каждого компонента в правые списки значимостей вводятся нули.
После ввода всех компонентов списки значимостей редактируются. Для этого изменяемый элемент списка выделяется, а в верхнее текстовое поле вводится число (от 0 до 10). После нажатия клавиши "Ред" число заносится в список.
В этой таблице приведены значимости каждого элемента системы по 10 бальной экспертной оценке. Коэффициенты Кфз, Кпз, Кзз - это весовые коэффициенты. Они подбираются экспериментально. Ввод их производится в текстовые
поля, расположенные снизу под коэффициентами. После заполнения списков и ввода значений коэффициентов нажимается клавиша "Идеальность" и в правом текстовом поле выводится ее значение. Списки сохраняются в
cookies: Cuk,Cuk2,Cuk3,Cuk4. Для этого нужно нажать клавишу "Запись в "cookie". Данный расчет позволяет количественно выявлять проблемные элементы, а также оценивать новое техническое решение. Естественно,
идеальность новой системы должна получаться выше, чем у прототипа.
Приближение к идеальному конечному результату должно идти с последовательным увеличением идеальности.
Скрипт составлялся в Firefox.
Все выявленные пользователями ошибки сразу пытаюсь устранить.
<HTML>
<HEAD>
<TITLE>ТРИЗ-скрипт расчета идеальности технической системы</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script type="text/javascript">
function focusElement(n) {
var elem = document.forms[n].myInput;
elem.focus();
}
function SetCookie (name, value, expires, path, domain, secure) {
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" +
expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}
// Вспомогательная функция, используемая функцией getCookie()
function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
//Основная функция для определения значения cookie по имени
function GetCookie (name, value) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0)
break;
}
return null;
}
function DelCuk() {
var largeExpDate = new Date ();
largeExpDate.setTime(largeExpDate.getTime());
SetCookie('Cuk',Cuk,largeExpDate,myDomain);
SetCookie('Cuk2',Cuk2,largeExpDate,myDomain);
SetCookie('Cuk3',Cuk3,largeExpDate,myDomain);
SetCookie('Cuk4',Cuk4,largeExpDate,myDomain)
document.write('<p align=center>' + "cookie ТС удалена" + '</p>');
}
//Запись списка в cookie
function AddCk() {
for (var n=0; n < 4; n++){
var list = document.forms[n].getElementsByTagName('select')['list'];
var li = document.forms[n].getElementsByTagName('option');
//Ввод всего списка с разделением элементов пробелами
var s = ""
for (var i=0; i < li.length; i++){s = s + (list.options[i].value)+' '}
//Удаление пробела в конце списка
s = s.slice(0,-1);
if (n==0){SetCookie('Cuk',s,largeExpDate,myDomain)}else{
if (n==1){SetCookie('Cuk2',s,largeExpDate,myDomain)}else{
if (n==2){SetCookie('Cuk3',s,largeExpDate,myDomain)}else{
if (n==3){SetCookie('Cuk4',s,largeExpDate,myDomain)}}}}
alert("Запись успешно произведена");
} }
//Заполнение списка
function addList(n){
valid = true;
var list = document.forms[n].getElementsByTagName('select')['list'];
var option = document.createElement('option');
//Запрещение ввода пустой строки
if (document.fm1.myInput.value<1)
return valid;
// Ввод в список из текстового поля
if (n==0){option.innerHTML =document.forms[n].myInput.value}
else {option.innerHTML ='0'}
document.forms[n].list.appendChild(option)
document.forms[0].myInput.focus()
}
//Ввод массивов в списки
function addArr(){
{for (var i=0; i < arr.length;
i++){{var li=document.createElement('option');
document.fm1.list.appendChild(li);
li.innerHTML =arr[i]}
{var li=document.createElement('option');
document.fm2.list.appendChild(li);
li.innerHTML =arr2[i]}
{var li=document.createElement('option');
document.fm3.list.appendChild(li);
li.innerHTML =arr3[i]}
{var li=document.createElement('option');
document.fm4.list.appendChild(li);
li.innerHTML =arr4[i]}
}}
}
function Id(KF,KP,KZ){
var s = new Array(3)
for (var n=1; n < 4; n++){
var list = document.forms[n].getElementsByTagName('select')['list'];
var li = document.forms[n].getElementsByTagName('option');
s[n]=0;
for (var i=0; i < arr.length;
i++){s1=parseFloat(list.options[i].value); s[n] = s[n] + s1}}
var K1F=parseFloat(KF);
var K1P=parseFloat(KP);
var K1Z=parseFloat(KZ);
var Id1=K1F*s[1]/(K1P*s[2]+K1Z*s[3])
document.fm7.Ids.value=Id1.toFixed(3)
}
function Sum(){
var s = new Array(3)
for (var n=1; n < 4; n++){
var list = document.forms[n].getElementsByTagName('select')['list'];
var li = document.forms[n].getElementsByTagName('option');
s[n]=0;
for (var i=0; i < arr.length;
i++){var s1=parseFloat(list.options[i].value); s[n] = s[n] + s1}}
document.fm5.SFZ.value=s[1]
document.fm5.SPZ.value=s[2]
document.fm5.SZZ.value=s[3]
}
var Cuk = GetCookie('Cuk')
var Cuk2 = GetCookie('Cuk2')
var Cuk3=GetCookie('Cuk3')
var Cuk4=GetCookie('Cuk4')
pathname = location.pathname;
myDomain = pathname.substring(0,pathname.lastIndexOf('/')) +'/';
// Установка параметра expire на год вперед.
var largeExpDate = new Date ();
largeExpDate.setTime(largeExpDate.getTime() + (365 * 24 * 3600 * 1000));
var arr = Cuk.split(' ') // массив из Cuk; разделитель - пробел
var arr2 = Cuk2.split(' ')
var arr3 = Cuk3.split(' ')
var arr4 = Cuk4.split(' ')
</script>
</HEAD>
<BODY onload="addArr()">
<table align="center" name = "tb" cellspacing="0" align ="left" ><tbody>
<tr>
<td align="center" width="220px" bgcolor="#ffffcc" id="first">
<center><form name="fm1">
<input type='button' value='Добавить элемент в список'
onclick='for(var j=0;j<4;j++)addList(j)'><br />
<input type=button value='Удалить элемент из списка'
onClick="for(var i=0;i<fm1.list.length;i++)
if(fm1.list.options[i].selected==true)
for(var j=0;j<4;j++)forms[j].list.options[i]= null"><br />
<input type=button value='Редактирование'
onClick="for(var i=0;i<fm1.list.length;i++)
if(fm1.list.options[i].selected==true)
fm1.list.options[i].innerHTML=fm1.myInput.value;fm1.myInput.value='' "><br />
<b>Элементы</b><br />
<input type="text" name="myInput"><br />
<select size='15' id="list" ></select><br />
</form></center>
</td>
<td align="center" width="25px" bgcolor="#ccffff" id="second">
<form name="fm2">
<input type=button value='Ред'
onClick="for(var i=0;i<fm2.list.length;i++)
if(fm2.list.options[i].selected==true)
fm2.list.options[i].innerHTML=fm2.myInput.value;fm2.myInput.value=''" style="margin-top: 45px"><br />
<b>ФЗ</b><br />
<input type="text" size="3px" name="myInput"><br />
<select size='15' id="list" ></select><br />
</form>
</td>
<td align="center" width="25px" bgcolor="#ccffff" id="second">
<form name="fm3">
<input type=button value='Ред'
onClick="for(var i=0;i<fm3.list.length;i++)
if(fm3.list.options[i].selected==true)
fm3.list.options[i].innerHTML=fm3.myInput.value;fm3.myInput.value='' " style="margin-top: 45px"><br />
<b>ПЗ</b><br />
<input type="text" size="3px" name="myInput"><br />
<select size="15" id="list"></select><br />
</form>
</td>
<td align="center" width="25px" bgcolor="#ccffff" id="second">
<form name="fm4">
<input type=button value='Ред'
onClick="for(var i=0;i<fm4.list.length;i++)
if(fm4.list.options[i].selected==true)
fm4.list.options[i].innerHTML=fm4.myInput.value;fm4.myInput.value='' " style="margin-top: 45px"><br />
<b>ЗЗ</b><br />
<input type="text" size="3px" name="myInput"><br />
<select size="15" id="list" ></select><br />
</form>
</td>
</tr>
<tr align="center"><form name="fm5">
<td bgcolor="#ffcc66">
<INPUT TYPE="button" VALUE="Запись в cookie" OnClick='AddCk()'style="width: 135px"><br />
<INPUT TYPE="button" VALUE="Удаление cookie" OnClick='DelCuk(Cuk)'style="width: 135px">
</td>
<td bgcolor="#ffcc66">
<input type='button' value='Sфз'
onclick='Sum()'><br />
<input type="text" size="4px" name="SFZ">
</td>
<td bgcolor="#ffcc66">
<input type='button' value='Sпз'
onclick='Sum()'><br />
<input type="text" size="4px" name="SPZ">
</td>
<td bgcolor="#ffcc66">
<input type='button' value='Sзз'
onclick='Sum()'><br />
<input type="text" size="4px" name="SZZ">
</td>
</form>
</tr>
<tr align="center">
<form name="fm6">
<td bgcolor="#ffcc66">
</td>
<td bgcolor="#ffcc66">
K<sub>фз</sub><br />
<input type="text" size="3px" name="KF">
</td>
<td bgcolor="#ffcc66">
K<sub>пз</sub><br />
<input type="text" size="3px" name="KP">
</td>
<td bgcolor="#ffcc66">
K<sub>зз</sub><br />
<input type="text" size="3px" name="KZ">
</td>
</form>
</tr>
<tr>
<form name="fm7">
<td colspan="4" bgcolor="#ffcc66">
<INPUT TYPE="button" VALUE="Идеальность" OnClick='Id(document.fm6.KF.value,document.fm6.KP.value,document.fm6.KZ.value)'> = K<sub>фз</sub>*S<sub>фз</sub>/(K<sub>пз</sub>*S<sub>пз</sub>+K<sub>зз</sub>*S<sub>зз</sub>) =
<input type="text" name="Ids" style="width: 45px">
</td>
</form>
</tr>
</tbody></table>
<script type="text/javascript">
focusElement(1)
</script>
</BODY>
</HTML>
|
1) higth - Оригинально. Букву пропустили.
2) Uncaught exception: TypeError: Cannot convert 'Cuk2' to object
3) Uncaught exception: TypeError: Cannot convert 'arr2' to object
И тому подобное...
Панель в Firefox: Инструменты -> Консоль ошибок
Anonse kobiet roksa
Anonse erotyczne płońsk
Отправить комментарий
Приветствуются комментарии:Для остальных вопросов и обсуждений есть форум.