85938

КОЛИЧЕСТВЕННЫЕ ХАРАКТЕРИСТИКИ БЕЗОТКАЗНОСТИ. ЛОГИКО-ВЕРОЯТНОСТНЫЙ МЕТОД РАСЧЕТА

Курсовая

Информатика, кибернетика и программирование

Надежность является сложным свойством, и формируется такими составляющими, как безотказность, долговечность, восстанавливаемость и сохраняемость. Основным здесь является свойство безотказности - способность изделия непрерывно сохранять работоспособное состояние в течение некоторого промежутка времени. Потому наиболее важным в обеспечении надежности систем является повышение их безотказности.

Русский

2015-04-01

334.5 KB

5 чел.

СОДЕРЖАНИЕ

[1]
ВВЕДЕНИЕ

[2]
ГЛАВА 1. КОЛИЧЕСТВЕННЫЕ ХАРАКТЕРИСТИКИ БЕЗОТКАЗНОСТИ

[3]
ГЛАВА 2. ЛОГИКО-ВЕРОЯТНОСТНЫЙ МЕТОД РАСЧЕТА

[3.1] 2.1. Структурно – логический анализ технических систем

[3.2] 2.2. Этапы построения логико-вероятностного метода расчета

[4]
ЗАКЛЮЧЕНИЕ

[5]
БИБЛИОГРАФИЧЕСКИЙ СПИСОК

[6]
ПРИЛОЖЕНИЕ


ВВЕДЕНИЕ

              

Надежностью называют свойство объекта сохранять во времени в установленных пределах значения всех параметров, характеризующих способность выполнять требуемые функции в заданных режимах и условиях применения, технического обслуживания, ремонтов, хранения и транспортировки.

Надежность является сложным свойством, и формируется такими составляющими, как безотказность, долговечность, восстанавливаемость и сохраняемость. Основным здесь является свойство безотказности - способность изделия непрерывно сохранять работоспособное состояние в течение некоторого промежутка времени. Потому наиболее важным в обеспечении надежности систем является повышение их безотказности.


ГЛАВА 1. КОЛИЧЕСТВЕННЫЕ ХАРАКТЕРИСТИКИ БЕЗОТКАЗНОСТИ

Безотказность (и другие составляющие свойства надежности) системы проявляется через случайные величины: наработку до очередного отказа и количество отказов за заданное время. Поэтому количественными характеристиками свойства здесь выступают вероятностные переменные.

Наработка есть продолжительность или объем работы объекта. Для РЭС естественно исчисление наработки в единицах времени, тогда как для других технических средств могут быть удобнее иные средства измерения (например, наработка автомобиля - в километрах пробега). Для невосстанавливаемых и восстанавливаемых изделий понятие наработки различается: в первом случае подразумевается наработка до первого отказа (он же является и последним отказом), во втором - между двумя соседними во времени отказами (после каждого отказа производится восстановление работоспособного состояния). Математическое ожидание случайной наработки Т

 

является характеристикой безотказности и называется средней наработкой на отказ (между отказами). 

Вероятность безотказной работы - вероятность того, что в пределах заданной наработки  t  отказ объекта не возникнет:

,

N(t) – число объектов исправно работающих на интервале от 0 до t,

No – число объектов в начале испытаний.

 

Вероятность противоположного события называется вероятностью отказа и дополняет вероятность безотказной работы до единицы:

,

Q(t) – вероятность того, что в пределах заданной наработки отказ системы возникает.

 

Плотность вероятности f(t) также является показателем надежности, называемым частотой отказов:

,

,

- число отказов за интервал времени ,

- рассматриваемый промежуток времени.

Интенсивностью отказов называют условную плотность вероятности возникновения отказа изделия при условии, что к моменту t отказ не возник:

,

,

- число исправно работающих объектов в начале интервала,

- число исправно работающих объектов в конце интервала.

 

Это выражение, называемое основным законом надежности, позволяет установить временное изменение вероятности безотказной работы при любом характере изменения интенсивности отказов во времени.

Средняя наработка до отказа – математическое ожидание наработки системы до первого отказа или  время безотказной работы.

                     ,

                        ,

No – общее количество объектов,

tср.i – время исправной работы i – го объекта.

Средняя наробтка на отказ.

                        ,

To – отношение наработки восстановленной системы математического ожидания числа ее отказов в пределах этой наработки,

n – Число отказов системы,

- время исправной работы между отказами.

Показатели ремонтопригодности:

Вероятность  восстановления  s(t)  –  это  вероятность  того,  что отказавшее изделие будет восстановлено в течение времени t.

Интенсивность   восстановленного   М(t)   –   условная   плотность

распространения времени восстановления для момента  времени  t  при

условии, что до этого момента восстановление изделия не произошло.

Среднее время восстановления Тв – это математическое ожидание времени восстановления работоспособного состояния системы.

,

,

Tв.i – время восстановления i – го объекта.

Восстановления работоспособного состояния системы.

Коэффициент готовности Кг (t) – это вероятность того,  что  изделие

работоспособно в произвольный момент времени t.

Коэффициент  оперативной  готовности  Копер.  (t,  ()  –  это

вероятность   того,   что   аппаратура   будет   работоспособна   в

произвольный момент времени t. и  безотказно  проработает  заданное

время r.

Копер.(t, ()) = Кг(t)  Р(())

Показатели долговечности:

  •  средний ресурс;
  •  назначенный срок службы;
  •  средний срок службы;
  •  назначенный ресурс;

гамма – процентный ресурс.


ГЛАВА 2. ЛОГИКО-ВЕРОЯТНОСТНЫЙ МЕТОД РАСЧЕТА

2.1. Структурно – логический анализ технических систем

Конечной целью расчета надежности технических устройств является оптимизация конструктивных решений и параметров, режимов эксплуатации, организация технического обслуживания и ремонтов. Поэтому уже на ранних стадиях проектирования важно оценить надежность объекта, выявить наиболее ненадежные узлы и детали, определить наиболее эффективные меры повышения показателей надежности. Решение этих задач возможно после предварительного структурно - логического анализа системы.

Большинство технических объектов являются сложными системами, состоящими из отдельных узлов, деталей, агрегатов, устройств контроля, управления и т.д..

Ссистема - совокупность технических устройств (элементов), предназначенных для выполнения определенной функции или функций. Соответственно, элемент - составная часть системы.

Расчленение системы на элементы достаточно условно и зависит от постановки задачи расчета надежности. 

При определении структуры системы в первую очередь необходимо оценить влияние каждого элемента и его работоспособности  на работоспособность системы в целом.  С этой точки зрения целесообразно разделить все элементы на четыре группы: 

  •  элементы, отказ которых практически не влияет на работоспособность системы;
  •  элементы, работоспособность которых за время эксплуатации практически не изменяется и вероятность безотказной работы близка к единице;
  •      элементы, ремонт или регулировка которых возможна при работе изделия или во время планового технического обслуживания;
  •  элементы, отказ которых сам по себе или в сочетании с отказами других элементов приводит к отказу системы.

 Очевидно, при анализе надежности систем имеет смысл включать в рассмотрение только элементы последней группы.

Для расчетов параметров надежности удобно использовать структурно  - логические схемы надежности систем, которые графически отображают взаимосвязь элементов и их влияние на работоспособность системы в целом. Структурно - логическая схема представляет собой совокупность ранее выделенных элементов, соединенных друг с другом последовательно или параллельно. Критерием для определения вида соединения элементов (последовательного или параллельного) при построении схемы является влияние их отказа на работоспособность системы.

Последовательным (с точки зрения надежности) считается соединение, при котором отказ любого элемента приводит к отказу всей системы (рис. 2.1).

Параллельным (с точки зрения надежности) считается соединение, при котором отказ любого элемента не приводит к отказу системы, пока не откажут все соединенные элементы (рис. 2.2).

 

 

 

Определенная аналогия здесь прослеживается с цепью, составленной из проводящих элементов (исправный элемент пропускает ток, отказавший не пропускает): работоспособному состоянию системы соответствует возможность протекания тока от входа до выхода цепи .

Однако не всегда структурная схема надежности аналогична конструктивной или электрической схеме расположения элементов.

2.2. Этапы построения логико-вероятностного метода расчета

Логико-вероятностный метод является теоретической основой технологии автоматизированного структурно-логического моделирования и расчета надежности, живучести и безопасности структурно и качественно сложных системных объектов и процессов. В логико-вероятностном методе расчета надежности, аппарат математической логики используется для первичного графического и аналитического описания условий реализации функций отдельными и группами элементов в проектируемой системе, а методы теории вероятностей и комбинаторики применяются для количественной оценки безотказности и/или опасности функционирования проектируемой системы в целом. Для использования логико-вероятностного метода должны задаваться специальные структурные схемы функциональной целостности исследуемых систем, логические критерии их функционирования, вероятностные и другие параметры элементов.

В основе постановки и решения всех задач моделирования и расчета надежности систем с помощью логико-вероятностного метода лежит так называемый событийно-логический подход. Этот подход предусматривает последовательное выполнение следующих четырех основных этапов.

1. Этап структурно-логической постановки задачи, который включает в себя:

- разделение всей рассматриваемой системы на конечное число H элементов i =1,2,...,H, каждый из которых представляется в модели надежности простым (бинарным) событием i x с двумя возможными состояниям ~ { , } i i i x = x x , например, работоспособности/отказа, готовности/не готовности, поражения/не поражения и т.д., и заданными вероятностными параметрами p (t), i ;

- определение содержания и логических условий реализации i y и/или не реализации i y выходных (интегративных) функций для каждого элемента в системе;

- логически строгое вербальное и графическое (аналитическое) описание множества X отдельных элементов системы и множества условий Y реализации ими своих системных функций, которые в совокупности G(X ,Y)образуют специальную схему функциональной целостности (СФЦ) рассматриваемой системы;

- логически строгое описание и задание с помощью отдельных или групповых выходных (интегративных) функций логических критериев функционирования (ЛКФ) системы Y Y ({~y },i 1,2,...,N) F F i = = реализации основных функций и/или возникновения опасных состояний системы;

2. Этап  логического  моделирования, на котором с помощью специальных методов преобразования СФЦ и ЛКФ осуществляется построение логической функции работоспособности системы (ФРС) Y Y ({~x },i 1,2,...,H) F F i = = . Логическая функция работоспособности системы аналитически строго, но в компактной форме, определить все комбинации состояний элементов x i H i ~ , =1,2,..., , в которых (и только в которых) система реализует свою выходную функцию F.

3. Этап  вероятностного  моделирования, на котором с помощью специальных методов преобразования функции работоспособности системы осуществляется построение многочлена расчетной вероятностной функции (ВФ) P ({p (t),q (t)},i 1,2,...,H;t) F ii = . Многочлен ВФ позволяет аналитически строго определить закон распределения времени безотказной работы системы по реализации выходной функции F, заданной логическим критерием функционирования.

4. Этап  выполнения  расчетов  показателей  надежности,  которые выполняются на основе ВФ и заданных параметров надежности элементов.

В технологии автоматизированного структурно-логического моделирования вручную выполняются только первый этап структурно-логической постановки задач расчета надежности.

Этапы построения логических фунций работоспособности системы, многочленов ВФ и расчетов показателей надежности выполняются с помощью специального программного комплекса автоматизированного структурно-логического моделирования (ПК АСМ).

Главную творческую работу по постановке задачи и анализу результатов проектного расчета надежности выполняют проектировщик и системный аналитик. Они логически описывают проектируемую систему, построят СФЦ для каждой из ее главных подсистем и функций, определяют параметры надежности элементов, задают логические критерии реализации функций, проанализируют результаты расчетов, вырабатывают и реализуют проектные решения и подготавливают отчет.

Вся громоздкая и трудоемкая работа по построению логических, расчетных математических моделей и вычислению показателей надежности выполняется автоматически, с помощью специальных программных средств комплекса автоматизированного структурно-логического моделирования.


ЗАКЛЮЧЕНИЕ

В данной курсовой работе были изложены сведения о надежности, логико-вероятностном методе расчета систем, а так же написана программа, рассчитывающая надежность системы по первоначально введенным данным. Программа была разработана для обучения студентов, то есть проверки правильности произведенных вычислений.

В результате можно сделать вывод: программа значительно сокращает время расчета, а так же избавляет от рутинной работы, при этом снижается вероятность ошибок, если бы вычисления производились в ручную.


БИБЛИОГРАФИЧЕСКИЙ СПИСОК

  1.  Рябинин И.А., Черкесов С.Н. Логико-вероятностные методы исследованиянадежности структурно-сложных систем. // М., Радио и связь, 1991 - 264 с.
  2.  Нозик А.А. Технология автоматизированного структурно-логического моделирования в проектных расчетах надежности систем. // Труды второй международной научной школы "Моделирование и анализ безопасности и риска в сложных системах". МА БР - 2002. СПб.: Издательство "Бизнес-Пресса , 2002, - с. 337-344.
  3.  Нозик А.А. Методы проектного расчета надежности автоматизированных систем управления технологическими процессами. // Труды II международной научно-практической конференции. Часть I. "Микропроцессорные, аналоговые и цифровые системы: проектирование и системотехника, теория и вопросы применения". Новочеркасск: НПИ, 2002, -с.33-45.


ПРИЛОЖЕНИЕ

Рис. Главное окно программы

procedure TForm1.Button1Click(Sender: TObject);     //////////////////////////////

var  d,i,j,pos1,pos2,kol,kol1:integer;         /////////////////////////////

                        ret:boolean;

begin

ret:=false;

Button1.Enabled:=false;

kol:=0;kol1:=0;

d:=0; pos1:=0; pos2:=0;

if (BitBtn5.Enabled=false) and (BitBtn5.Enabled=false) then

begin

 for i:=1 to length(Edit1.Text) do          // делит скобки

   begin

   if Edit1.Text[i]='(' then pos1:=i;

   if Edit1.Text[i]=')' then pos2:=i;

   end;

   Edit3.Text:=copy(Edit1.Text,pos1+1,pos2-pos1-1);

Edit2.Text:=copy(Edit1.Text,1,pos1-1);              //перед скобками

for j:=1 to length(Edit3.Text) do

   if edit3.Text[j]<>'v' then begin Label3.Caption:=Label3.Caption+Edit3.Text[j];kol:=kol+1;end

   else break;

   kol:=kol+2;

for j:=kol to length(Edit3.Text) do

   if edit3.Text[j]<>'v' then begin Label4.Caption:=Label4.Caption+Edit3.Text[j];kol1:=kol1+1;end

   else break;

   kol1:=kol1+kol+1;

   for j:=kol1 to length(Edit3.Text) do

   if edit3.Text[j]<>'v' then begin Label5.Caption:=Label5.Caption+Edit3.Text[j];end

   else break;

if (Label4.Caption='') and (Label5.Caption='') then ret:=true;

if  (Label3.Caption<>'') and (ret=false)then

begin

Edit3.Text:='('+Label3.Caption +'+'+ Label4.Caption+'-'+Label3.Caption +'*' +Label4.Caption + ')';

Edit2.Text:=Edit2.Text+copy(Edit3.Text,1,length(Edit3.Text));

end;

if  (Label3.Caption<>'') and (Label5.Caption<>'') and (ret=false) then

begin

Edit3.Text:='('+Label3.Caption +'+'+ Label4.Caption+'-'+Label3.Caption +'*' +Label4.Caption + ')';

Edit3.Text:='('+Edit3.Text  + '+' + Label5.Caption + '-' + Edit3.Text + '*' + Label5.Caption+ ')';

Edit2.Text:=Edit2.Text+copy(Edit3.Text,1,length(Edit3.Text));

end;

                                                           ///////////////////если перед скобкой 1 v

if (Edit2.Text[2]='v') and (Edit2.Text[4]<>'v') then begin

if Edit2.Text[1]='A' then

Edit2.Text:=Edit2.Text[1]+'+'+Edit3.Text+'-'+Edit2.Text[1]+'*'+Edit3.Text;

if Edit2.Text[1]='B' then

Edit2.Text:=Edit2.Text[1]+'+'+Edit3.Text+'-'+Edit2.Text[1]+'*'+Edit3.Text;

if Edit2.Text[1]='C' then

Edit2.Text:=Edit2.Text[1]+'+'+Edit3.Text+'-'+Edit2.Text[1]+'*'+Edit3.Text;

if Edit2.Text[1]='D' then

Edit2.Text:=Edit2.Text[1]+'+'+Edit3.Text+'-'+Edit2.Text[1]+'*'+Edit3.Text;

end;

end;

if (BitBtn5.Enabled=true) and (BitBtn5.Enabled=true) then

begin

for i:=1 to length(Edit1.Text) do inc(d);

                                                       /////// 3333333333333333

if (Edit1.Text[2]='*') and (d=3) then begin Edit2.Text:= Edit1.Text;end;

if (Edit1.Text[2]='v') and (d=3) then begin Edit2.Text:=Edit1.Text[1]+'+'+Edit1.Text[3]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3];end;

                                                       /////////5555555555555555

if (Edit1.Text[2]='*') and (Edit1.Text[4]='*') and (d=5) then begin Edit2.Text:=Edit1.Text;end;

if (Edit1.Text[2]='v') and (Edit1.Text[4]='*') and (d=5) then begin Edit2.Text:=Edit1.Text[1]+'+'+Edit1.Text[3]+'*'+Edit1.Text[5]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+'*'+Edit1.Text[5];end;

if (Edit1.Text[2]='*') and (Edit1.Text[4]='v') and (d=5) then begin Edit2.Text:=Edit1.Text[1]+'*'+Edit1.Text[3]+'+'+Edit1.Text[5]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+'*'+Edit1.Text[5];end;

if (Edit1.Text[2]='v') and (Edit1.Text[4]='v') and (d=5) then begin Edit2.Text:='('+Edit1.Text[1]+'+'+Edit1.Text[3]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+')'+'+'+Edit1.Text[5]+'-'+'('+Edit1.Text[1]+'+'+Edit1.Text[3]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+')'+'*'+Edit1.Text[5] ;end;

                                                       ////////////7777777777777777777

if (Edit1.Text[2]='*') and (Edit1.Text[4]='*') and (Edit1.Text[6]='*') and (d=7) then begin Edit2.Text:=Edit1.Text;end;

if (Edit1.Text[2]='v') and (Edit1.Text[4]='*') and (Edit1.Text[6]='*') and (d=7) then begin Edit2.Text:=Edit1.Text[1]+'+'+Edit1.Text[3]+'*'+Edit1.Text[5]+'*'+Edit1.Text[7]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+'*'+Edit1.Text[5]+'*'+Edit1.Text[7];end;

if (Edit1.Text[2]='v') and (Edit1.Text[4]='v') and (Edit1.Text[6]='*') and (d=7) then begin Edit2.Text:='('+Edit1.Text[1]+'+'+Edit1.Text[3]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+')'+'+'+Edit1.Text[5]+'*'+Edit1.Text[7]+'-'+'('+Edit1.Text[1]+'+'+Edit1.Text[3]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+')'+'*'+Edit1.Text[5]+'*'+Edit1.Text[7];end;

if (Edit1.Text[2]='*') and (Edit1.Text[4]='v') and (Edit1.Text[6]='v') and (d=7) then begin Edit2.Text:='('+Edit1.Text[1]+'*'+Edit1.Text[3]+'+'+Edit1.Text[5]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+'*'+Edit1.Text[5]+')'+'+'+Edit1.Text[7]+'-'+'('+Edit1.Text[1]+'*'+Edit1.Text[3]+'+'+Edit1.Text[5]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+'*'+Edit1.Text[5]+')'+'*'+Edit1.Text[7];end;

if (Edit1.Text[2]='*') and (Edit1.Text[4]='*') and (Edit1.Text[6]='v') and (d=7) then begin Edit2.Text:=Edit1.Text[1]+'*'+Edit1.Text[3]+'*'+Edit1.Text[5]+'+'+Edit1.Text[7]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+'*'+Edit1.Text[5]+'*'+Edit1.Text[7];end;

if (Edit1.Text[2]='v') and (Edit1.Text[4]='v') and (Edit1.Text[6]='v') and (d=7) then begin Edit2.Text:='('+'('+Edit1.Text[1]+'+'+Edit1.Text[3]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+')'+'+'+Edit1.Text[5]+'-'+'('+Edit1.Text[1]+'+'+Edit1.Text[3]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+')'+'*'+Edit1.Text[5]+')'+'+'+Edit1.Text[7]+'-'+'('+'('+Edit1.Text[1]+'+'+Edit1.Text[3]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+')'+'+'+Edit1.Text[5]+'-'+'('+Edit1.Text[1]+'+'+Edit1.Text[3]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+')'+'*'+Edit1.Text[5]+')'+'*'+Edit1.Text[7];end;

if (Edit1.Text[2]='v') and (Edit1.Text[4]='*') and (Edit1.Text[6]='v') and (d=7) then begin Edit2.Text:='('+Edit1.Text[1]+'+'+Edit1.Text[3]+'*'+Edit1.Text[5]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+'*'+Edit1.Text[5]+')'+'+'+Edit1.Text[7]+'-'+'('+Edit1.Text[1]+'+'+Edit1.Text[3]+'*'+Edit1.Text[5]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+'*'+Edit1.Text[5]+')'+'*'+Edit1.Text[7];end;

if (Edit1.Text[2]='*') and (Edit1.Text[4]='v') and (Edit1.Text[6]='*') and (d=7) then begin Edit2.Text:=Edit1.Text[1]+'*'+Edit1.Text[3]+'+'+Edit1.Text[5]+'*'+Edit1.Text[7]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+'*'+Edit1.Text[5]+'*'+Edit1.Text[7];end;

end;

if (Edit1.Text[1]='(') and (Edit1.Text[3]='v') and (Edit1.Text[5]='*') and (Edit1.Text[7]=')') and (Edit1.Text[8]='v')then begin

Edit2.Text:='('+Edit1.Text[2]+'+'+Edit1.Text[4]+'*'+Edit1.Text[6]+'-'+Edit1.Text[2]+'*'+Edit1.Text[4]+'*'+Edit1.Text[6]+')'+'+'+Edit1.Text[9]+'-'+'('+Edit1.Text[2]+'+'+Edit1.Text[4]+'*'+Edit1.Text[6]+'-'+Edit1.Text[2]+'*'+Edit1.Text[4]+'*'+Edit1.Text[6]+')'+'*'+Edit1.Text[9];end;

end;

procedure TForm1.BitBtn10Click(Sender: TObject);

var d,i:integer;

begin

if (BitBtn5.Enabled=false) and (BitBtn6.Enabled=false) then

begin

   if Label3.Caption='A' then label15.Caption:=Edit5.Text;

   if Label3.Caption='B' then label15.Caption:=Edit6.Text;

   if Label3.Caption='C' then label15.Caption:=Edit7.Text;

   if Label3.Caption='D' then label15.Caption:=Edit8.Text;

   if Label4.Caption='A' then label16.Caption:=Edit5.Text;

   if Label4.Caption='B' then label16.Caption:=Edit6.Text;

   if Label4.Caption='C' then label16.Caption:=Edit7.Text;

   if Label4.Caption='D' then label16.Caption:=Edit8.Text;

   if Label5.Caption='A' then label17.Caption:=Edit5.Text;

   if Label5.Caption='B' then label17.Caption:=Edit6.Text;

   if Label5.Caption='C' then label17.Caption:=Edit7.Text;

   if Label5.Caption='D' then label17.Caption:=Edit8.Text;

if Label3.Caption[2]='*' then begin         ///// если 2 или 3 перемен в скобках

   if Label3.Caption[1]='A' then label18.Caption:=Edit5.Text;

   if Label3.Caption[1]='B' then label18.Caption:=Edit6.Text;

   if Label3.Caption[1]='C' then label18.Caption:=Edit7.Text;

   if Label3.Caption[1]='D' then label18.Caption:=Edit8.Text;

   if Label3.Caption[3]='A' then label19.Caption:=Edit5.Text;

   if Label3.Caption[3]='B' then label19.Caption:=Edit6.Text;

   if Label3.Caption[3]='C' then label19.Caption:=Edit7.Text;

   if Label3.Caption[3]='D' then label19.Caption:=Edit8.Text;

   if Label3.Caption[5]='A' then label20.Caption:=Edit5.Text;

   if Label3.Caption[5]='B' then label20.Caption:=Edit6.Text;

   if Label3.Caption[5]='C' then label20.Caption:=Edit7.Text;

   if Label3.Caption[5]='D' then label20.Caption:=Edit8.Text;

Label15.Caption:=floattostr(strtofloat(Label18.Caption)*strtofloat(Label19.Caption)*strtofloat(Label20.Caption));;

end;

if Label4.Caption[2]='*' then begin         ///// если 2 или 3 перемен в скобках

   if Label4.Caption[1]='A' then label21.Caption:=Edit5.Text;

   if Label4.Caption[1]='B' then label21.Caption:=Edit6.Text;

   if Label4.Caption[1]='C' then label21.Caption:=Edit7.Text;

   if Label4.Caption[1]='D' then label21.Caption:=Edit8.Text;

   if Label4.Caption[3]='A' then label22.Caption:=Edit5.Text;

   if Label4.Caption[3]='B' then label22.Caption:=Edit6.Text;

   if Label4.Caption[3]='C' then label22.Caption:=Edit7.Text;

   if Label4.Caption[3]='D' then label22.Caption:=Edit8.Text;

Label16.Caption:=floattostr(strtofloat(Label21.Caption)*strtofloat(Label22.Caption));//*strtofloat(Label23.Caption));;

end;

if Label17.Caption='' then //  в скобках 2 элемента

begin Edit9.Text:= floattostr(strtofloat(Label15.Caption)+strtofloat(Label16.Caption)-strtofloat(Label15.Caption)*strtofloat(Label16.Caption));end;

if Label17.Caption<>'' then //  в скобках 3 элемента

begin Edit9.Text:=floattostr((strtofloat(Label15.Caption)+strtofloat(Label16.Caption)-strtofloat(Label15.Caption)*strtofloat(Label16.Caption))+strtofloat(Label17.Caption)-(strtofloat(Label15.Caption)+strtofloat(Label16.Caption)-strtofloat(Label15.Caption)*strtofloat(Label16.Caption))*strtofloat(Label17.Caption));end;

end;

if (Edit2.Text[2]='*') and (Edit3.Text<>'') then begin

if Edit2.Text[1]='A' then Edit4.Text:=floattostr(strtofloat(Edit9.Text)*strtofloat(Edit5.Text));

if Edit2.Text[1]='B' then Edit4.Text:=floattostr(strtofloat(Edit9.Text)*strtofloat(Edit6.Text));

if Edit2.Text[1]='C' then Edit4.Text:=floattostr(strtofloat(Edit9.Text)*strtofloat(Edit7.Text));

if Edit2.Text[1]='D' then Edit4.Text:=floattostr(strtofloat(Edit9.Text)*strtofloat(Edit8.Text));

end;

if (Edit2.Text[4]='*') and (Edit3.Text<>'') then begin

if Edit2.Text[3]='A' then Edit4.Text:=floattostr(strtofloat(Edit4.Text)*strtofloat(Edit5.Text));

if Edit2.Text[3]='B' then Edit4.Text:=floattostr(strtofloat(Edit4.Text)*strtofloat(Edit6.Text));

if Edit2.Text[3]='C' then Edit4.Text:=floattostr(strtofloat(Edit4.Text)*strtofloat(Edit7.Text));

if Edit2.Text[3]='D' then Edit4.Text:=floattostr(strtofloat(Edit4.Text)*strtofloat(Edit8.Text));

end;

                                                           ///////////////////если перед скобкой 1 v

if (Edit1.Text[2]='v') and (Edit1.Text[4]<>'v') then begin

if Edit1.Text[1]='A' then

Edit4.Text:=floattostr(strtofloat(Edit5.Text)+strtofloat(Edit9.Text)-strtofloat(Edit5.Text)*strtofloat(Edit9.Text));

if Edit2.Text[1]='B' then

Edit4.Text:=floattostr(strtofloat(Edit6.Text)+strtofloat(Edit9.Text)-strtofloat(Edit6.Text)*strtofloat(Edit9.Text));

if Edit2.Text[1]='C' then

Edit4.Text:=floattostr(strtofloat(Edit7.Text)+strtofloat(Edit9.Text)-strtofloat(Edit7.Text)*strtofloat(Edit9.Text));

if Edit2.Text[1]='D' then

Edit4.Text:=floattostr(strtofloat(Edit8.Text)+strtofloat(Edit9.Text)-strtofloat(Edit8.Text)*strtofloat(Edit9.Text));

end;

///////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////

if (BitBtn5.Enabled=true) and (BitBtn6.Enabled=true) then

begin

d:=0;

///////////////////// определение ячеек

if (Edit1.Text[1]='A') then Label11.Caption:=Edit5.Text;

if (Edit1.Text[1]='B') then Label11.Caption:=Edit6.Text;

if (Edit1.Text[1]='C') then Label11.Caption:=Edit7.Text;

if (Edit1.Text[1]='D') then Label11.Caption:=Edit8.Text;

if (Edit1.Text[3]='A') then Label12.Caption:=Edit5.Text;

if (Edit1.Text[3]='B') then Label12.Caption:=Edit6.Text;

if (Edit1.Text[3]='C') then Label12.Caption:=Edit7.Text;

if (Edit1.Text[3]='D') then Label12.Caption:=Edit8.Text;

if (Edit1.Text[5]='A') then Label13.Caption:=Edit5.Text;

if (Edit1.Text[5]='B') then Label13.Caption:=Edit6.Text;

if (Edit1.Text[5]='C') then Label13.Caption:=Edit7.Text;

if (Edit1.Text[5]='D') then Label13.Caption:=Edit8.Text;

if (Edit1.Text[7]='A') then Label14.Caption:=Edit5.Text;

if (Edit1.Text[7]='B') then Label14.Caption:=Edit6.Text;

if (Edit1.Text[7]='C') then Label14.Caption:=Edit7.Text;

if (Edit1.Text[7]='D') then Label14.Caption:=Edit8.Text;

for i:=1 to length(Edit1.Text) do inc(d);

                                                         /////// 3333333333333333

if (Edit1.Text[2]='*') and (d=3) then begin Edit2.Text:= Edit1.Text;Edit4.Text:=floattostr(strtofloat(Label11.Caption )*strtofloat(Label12.Caption)); end;

if (Edit1.Text[2]='v') and (d=3) then begin Edit2.Text:=Edit1.Text[1]+'+'+Edit1.Text[3]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3];

Edit4.Text:=floattostr(StrToFloat(Label11.Caption)+StrToFloat(Label12.Caption)-StrToFloat(Label11.Caption)*StrToFloat(Label12.Caption));end;

                                                       /////////5555555555555555

if (Edit1.Text[2]='*') and (Edit1.Text[4]='*') and (d=5) then begin Edit2.Text:=Edit1.Text;

Edit4.Text:=floattostr(StrToFloat(Label11.Caption)*StrToFloat(Label12.Caption)*StrToFloat(Label13.Caption));end;

if (Edit1.Text[2]='v') and (Edit1.Text[4]='*') and (d=5) then begin

Edit2.Text:=Edit1.Text[1]+'+'+Edit1.Text[3]+'*'+Edit1.Text[5]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+'*'+Edit1.Text[5];

Edit4.Text:=floattostr(strtofloat(Label11.Caption)+strtofloat(Label12.Caption)*strtofloat(Label13.Caption)-strtofloat(Label11.Caption)*strtofloat(Label12.Caption)*strtofloat(Label13.Caption));end;

if (Edit1.Text[2]='*') and (Edit1.Text[4]='v') and (d=5) then begin

Edit2.Text:=Edit1.Text[1]+'*'+Edit1.Text[3]+'+'+Edit1.Text[5]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+'*'+Edit1.Text[5];

Edit4.Text:=floattostr(strtofloat(Label11.Caption)*strtofloat(Label12.Caption)+strtofloat(Label13.Caption)-strtofloat(Label11.Caption)*strtofloat(Label12.Caption)*strtofloat(Label13.Caption));end;

if (Edit1.Text[2]='v') and (Edit1.Text[4]='v') and (d=5) then begin

Edit2.Text:='('+Edit1.Text[1]+'+'+Edit1.Text[3]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+')'+'+'+Edit1.Text[5]+'-'+'('+Edit1.Text[1]+'+'+Edit1.Text[3]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+')'+'*'+Edit1.Text[5] ;

Edit4.Text:=floattostr((strtofloat(Label11.Caption)+strtofloat(Label12.Caption)-strtofloat(Label11.Caption)*strtofloat(Label12.Caption))+strtofloat(Label13.Caption)-(strtofloat(Label11.Caption)+strtofloat(Label12.Caption)-strtofloat(Label11.Caption)*strtofloat(Label12.Caption))*strtofloat(Label13.Caption));end;

                                                       ////////////7777777777777777777

if (Edit1.Text[2]='*') and (Edit1.Text[4]='*') and (Edit1.Text[6]='*') and (d=7) then begin Edit2.Text:=Edit1.Text;

Edit4.Text:=floattostr(StrToFloat(Label11.Caption)*StrToFloat(Label12.Caption)*StrToFloat(Label13.Caption)*StrToFloat(Label14.Caption));end;

if (Edit1.Text[2]='v') and (Edit1.Text[4]='*') and (Edit1.Text[6]='*') and (d=7) then begin Edit2.Text:=Edit1.Text[1]+'+'+Edit1.Text[3]+'*'+Edit1.Text[5]+'*'+Edit1.Text[7]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+'*'+Edit1.Text[5]+'*'+Edit1.Text[7];

Edit4.Text:=floattostr(StrToFloat(Label11.Caption)+StrToFloat(Label12.Caption)*StrToFloat(Label13.Caption)*StrToFloat(Label14.Caption)-StrToFloat(Label11.Caption)*StrToFloat(Label12.Caption)*StrToFloat(Label13.Caption)*StrToFloat(Label14.Caption));end;

if (Edit1.Text[2]='v') and (Edit1.Text[4]='v') and (Edit1.Text[6]='*') and (d=7) then begin Edit2.Text:='('+Edit1.Text[1]+'+'+Edit1.Text[3]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+')'+'+'+Edit1.Text[5]+'*'+Edit1.Text[7]+'-'+'('+Edit1.Text[1]+'+'+Edit1.Text[3]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+')'+'*'+Edit1.Text[5]+'*'+Edit1.Text[7];

Edit4.Text:=floattostr((strtofloat(Label11.Caption)+strtofloat(Label12.Caption)-strtofloat(Label11.Caption)* strtofloat(Label12.Caption))+strtofloat(Label13.Caption)*strtofloat(Label14.Caption)-(strtofloat(Label11.Caption)+strtofloat(Label12.Caption)-strtofloat(Label11.Caption)*strtofloat(Label12.Caption))*strtofloat(Label13.Caption)*strtofloat(Label14.Caption));end;

if (Edit1.Text[2]='*') and (Edit1.Text[4]='v') and (Edit1.Text[6]='v') and (d=7) then begin Edit2.Text:='('+Edit1.Text[1]+'*'+Edit1.Text[3]+'+'+Edit1.Text[5]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+'*'+Edit1.Text[5]+')'+'+'+Edit1.Text[7]+'-'+'('+Edit1.Text[1]+'*'+Edit1.Text[3]+'+'+Edit1.Text[5]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+'*'+Edit1.Text[5]+')'+'*'+Edit1.Text[7];

Edit4.Text:=floattostr((strtofloat(Label11.Caption)*strtofloat(Label12.Caption)+strtofloat(Label13.Caption)-strtofloat(Label11.Caption)*strtofloat(Label12.Caption)*strtofloat(Label13.Caption))+strtofloat(Label14.Caption)-(strtofloat(Label11.Caption)*strtofloat(Label12.Caption)+strtofloat(Label13.Caption)-strtofloat(Label11.Caption)*strtofloat(Label12.Caption)*strtofloat(Label13.Caption))*strtofloat(Label14.Caption));end;

if (Edit1.Text[2]='*') and (Edit1.Text[4]='*') and (Edit1.Text[6]='v') and (d=7) then begin Edit2.Text:=Edit1.Text[1]+'*'+Edit1.Text[3]+'*'+Edit1.Text[5]+'+'+Edit1.Text[7]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+'*'+Edit1.Text[5]+'*'+Edit1.Text[7];

Edit4.Text:=floattostr(strtofloat(Label11.Caption)*strtofloat(Label12.Caption)*strtofloat(Label13.Caption)+strtofloat(Label14.Caption)-strtofloat(Label11.Caption)*strtofloat(Label12.Caption)*strtofloat(Label13.Caption)*strtofloat(Label14.Caption));end;

if (Edit1.Text[2]='v') and (Edit1.Text[4]='v') and (Edit1.Text[6]='v') and (d=7) then begin Edit2.Text:='('+'('+Edit1.Text[1]+'+'+Edit1.Text[3]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+')'+'+'+Edit1.Text[5]+'-'+'('+Edit1.Text[1]+'+'+Edit1.Text[3]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+')'+'*'+Edit1.Text[5]+')'+'+'+Edit1.Text[7]+'-'+'('+'('+Edit1.Text[1]+'+'+Edit1.Text[3]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+')'+'+'+Edit1.Text[5]+'-'+'('+Edit1.Text[1]+'+'+Edit1.Text[3]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+')'+'*'+Edit1.Text[5]+')'+'*'+Edit1.Text[7];

Edit4.Text:=floattostr(((strtofloat(Label11.Caption)+strtofloat(Label12.Caption)-strtofloat(Label11.Caption)*strtofloat(Label12.Caption))+strtofloat(Label13.Caption)-(strtofloat(Label11.Caption)+strtofloat(Label12.Caption)-strtofloat(Label11.Caption)*strtofloat(Label12.Caption))*strtofloat(Label13.Caption))+strtofloat(Label14.Caption)-((strtofloat(Label11.Caption)+strtofloat(Label12.Caption)-strtofloat(Label11.Caption)*strtofloat(Label12.Caption))+strtofloat(Label13.Caption)-(strtofloat(Label11.Caption)+strtofloat(Label12.Caption)-strtofloat(Label11.Caption)*strtofloat(Label12.Caption))*strtofloat(Label13.Caption))*strtofloat(Label14.Caption));end;

if (Edit1.Text[2]='v') and (Edit1.Text[4]='*') and (Edit1.Text[6]='v') and (d=7) then begin Edit2.Text:='('+Edit1.Text[1]+'+'+Edit1.Text[3]+'*'+Edit1.Text[5]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+'*'+Edit1.Text[5]+')'+'+'+Edit1.Text[7]+'-'+'('+Edit1.Text[1]+'+'+Edit1.Text[3]+'*'+Edit1.Text[5]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+'*'+Edit1.Text[5]+')'+'*'+Edit1.Text[7];

Edit4.Text:=floattostr((strtofloat(Label11.Caption)+strtofloat(Label12.Caption)*strtofloat(Label13.Caption)-strtofloat(Label11.Caption)*strtofloat(Label12.Caption)*strtofloat(Label13.Caption))+strtofloat(Label14.Caption)-(strtofloat(Label11.Caption)+strtofloat(Label12.Caption)*strtofloat(Label13.Caption)-strtofloat(Label11.Caption)*strtofloat(Label12.Caption)*strtofloat(Label13.Caption))*strtofloat(Label14.Caption));end;

if (Edit1.Text[2]='*') and (Edit1.Text[4]='v') and (Edit1.Text[6]='*') and (d=7) then begin Edit2.Text:=Edit1.Text[1]+'*'+Edit1.Text[3]+'+'+Edit1.Text[5]+'*'+Edit1.Text[7]+'-'+Edit1.Text[1]+'*'+Edit1.Text[3]+'*'+Edit1.Text[5]+'*'+Edit1.Text[7];

Edit4.Text:=floattostr(strtofloat(Label11.Caption)*strtofloat(Label12.Caption)+strtofloat(Label13.Caption)*strtofloat(Label14.Caption)-strtofloat(Label11.Caption)*strtofloat(Label12.Caption)*strtofloat(Label13.Caption)*strtofloat(Label14.Caption));end;

//if (Edit1.Text[1]='(') and (Edit1.Text[3]='v') and (Edit1.Text[5]='*') and (Edit1.Text[7]=')') and (Edit1.Text[8]='v')then begin

//Edit2.Text:='('+Edit1.Text[2]+'+'+Edit1.Text[4]+'*'+Edit1.Text[6]+'-'+Edit1.Text[2]+'*'+Edit1.Text[4]+'*'+Edit1.Text[6]+')'+'+'+Edit1.Text[9]+'-'+'('+Edit1.Text[2]+'+'+Edit1.Text[4]+'*'+Edit1.Text[6]+'-'+Edit1.Text[2]+'*'+Edit1.Text[4]+'*'+Edit1.Text[6]+')'+'*'+Edit1.Text[9];end;

//Edit4.Text:=floattostr((strtofloat(Label11.Caption)  '('+Edit1.Text[2]+'+'+Edit1.Text[4]+'*'+Edit1.Text[6]+'-'+Edit1.Text[2]+'*'+Edit1.Text[4]+'*'+Edit1.Text[6]+')'+'+'+Edit1.Text[9]+'-'+'('+Edit1.Text[2]+'+'+Edit1.Text[4]+'*'+Edit1.Text[6]+'-'+Edit1.Text[2]+'*'+Edit1.Text[4]+'*'+Edit1.Text[6]+')'+'*'+Edit1.Text[9];end;

end;

PAGE  1


 

А также другие работы, которые могут Вас заинтересовать

35775. Маркетинговый анализ компании 39 KB
  Ваша задача – проанализировать маркетинговую деятельность компании и найти новое направление развития компании. Маркетинговый анализ компании. Описание компании Название принадлежность к бизнесу малый средний крупный Давайте примем принадлежность к бизнесу по вашим представлением т. Сфера деятельности компании принадлежность к отрасли определение по категориям географические ценовые границы классификация товаров и или услуг Домашнее задание 1.
35777. Комнатные растения. Творческий проект 51 KB
  Drcen род растений семейства Спаржевые деревья или суккулентные кустарники. Ранее в ботанической классификации Драцена а также роды Кордилина и Юкка принадлежали к семейству Агавовые gvcee но после было выделено отдельное семейство Драце́новые Drcencee. Название Научное название рода Drcen в переводе означает самка дракона. Яркокрасная смола драконья кровь производится из Drcen drco а в древности из Drcen cinnbri.
35780. Шкатулка для золота. Творческий проект 74 KB
  Работа над формой шкатулки варианты 8. Орнамент шкатулки 9. Технологическая последовательность изготовления шкатулки 13. Вспомнив уроки технологии на которых учитель показывал нам образцы различных изделий после недолгих раздумий я остановил свой выбор на изготовлении шкатулки.
35781. Творческий проект «Юбка» 59.5 KB
  Верхний срез юбки обработан притачным поясом нижнийоборкой в одностороннюю складку. Верхний срез юбки обработан притачным поясом нижнийоборкой в одностороннюю складку. Верхний срез юбки обработан притачным поясом. Прежде всего я села за стол взяла карандаш тетрадь нарисовала и описала несколько моделей юбки.
35782. Вязание варежек спицами 626 KB
  Технологическая карта № п п Последовательность выполнения работы Эскиз Рабочие инструменты 1 Подготовить схему пряжу спицы Пряжа нитки 2 Набор петельДля данной пряжи и спиц мне понадобилось набрать 44 петли. Так как на запястье моя варежка связана резинкой 2х2 Пряжа нитки 3 После набора петли нужно распределить на 4 спицы по 11 на каждую. Пряжа нитки 4 Дальше вяжем по кругу резинку нужной высоты начиная провязывать петли с крайней спицы на которой нет концов нити.
35783. Цветок из бисера. Творческий проект 58.5 KB
  Выбор и обоснование проблемы В моей семье все женщины занимаются рукоделием. Выбор модели Я присмотрела много журналов и отобрала модели наиболее понравившиеся мне их оказалось очень много. Выбор оборудования инструментов и приспособлений 1.