|
Вычисление формул. Часть 1 |
|
Автор: Administrator
|
|
Рассмотрим первую часть функции, вычисляющей значение формул. Пожалуй это самая трудная функция во всей программе. Именно на ней держится вся программа вычисления таблиц истинности.
function istinnost (s:ShortString): shortstring; //функция вычисляет значение формулы var k,i,kon,nach:byte; f,skobka:shortstring; flag:boolean; begin //убираем лишние скобки, т.е. выражения типа (((0))) превращаем в 0 for i:=2 to length(skobka)-1 do begin if ((skobka[i]= '0') or (skobka[i] = '1')) then begin k:=0; while k<255 do begin if ((i-k=1) or (i+k = length(s))) then break; if ((skobka[i-k-1]='(') and (skobka[i+k+1]=')')) then inc(k) else break; end; delete(skobka,(i-k),k); delete(skobka,(i-k+1),k); end; end; //начинаем основную обработку формулы, каждую скобку по отдельности repeat
- Анализ результатов
- Метод наискорейшего спуска
- Метод шагов по оврагу
|