Программный продукт "Системы линейных неравенств"

Автор работы: Пользователь скрыл имя, 20 Декабря 2010 в 14:38, курсовая работа

Краткое описание

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

Основные направления выполнения программы:

1.создать модули, предлагающие поэтапное выполнение поставленной задачи;
2.создать модули, выполняющие вычисление правильно, быстро и корректно;
3.разработать интерфейс программы, совместимый с Windows-интерфейсом.

Содержание

ВВЕДЕНИЕ…………………………………………………………… 3
1 РАЗРАБОТКА ЭСКИЗНОГО И ТЕХНИЧЕСКОГО ПРОЕКТОВ ПРОГРАММЫ…………………………………………………………
4
1.1 Задание……………………………………………………………………….. 4
1.2 Назначение и область применения…………………………………………. 4
1.3 Технические характеристики……………………………………………... 4
2 РАЗРАБОТКА РАБОЧЕГО ПРОЕКТА…………………………… 9
2.1 Разработка программы……………………………………………………… 9
2.2 Спецификация программы…………………………………………………. 22
2.3 Текст программы…………………………………………………………….. 24
3 ВНЕДРЕНИЕ……………………………………………………….. 33
ЗАКЛЮЧЕНИЕ………………………………………………………. 37
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ………………… 38

Вложенные файлы: 1 файл

КУРСОВАЯ РАБОТА.doc

— 290.00 Кб (Скачать файл)

fx2:=StrToInt(Edit13.Text);

fc:=StrToInt(Edit14.Text); 

//находим  принадлежит ли точка пересений  неравенств 1 и 2 ОДР

if a22*a11-a12*a21<>0

  then

      begin

      if per12_x1>=x1

        then

            if per12_x2>=x2

              then

                begin

                bf12:=true;

                Label19.Caption:='Точка ('+FloatToStr(per12_x1)+';'+FloatToStr(per12_x2)+') входит в область ОДР';

                end

              else

                Label19.Caption:='Точка ('+FloatToStr(per12_x1)+';'+FloatToStr(per12_x2)+') не входит в область ОДР'

        else

          Label19.Caption:='Точка ('+FloatToStr(per12_x1)+';'+FloatToStr(per12_x2)+') не входит в область ОДР';

      end

  else

    Label19.Caption:=''; 

//находим  принадлежит ли точка пересений  неравенств 1 и 3 ОДР

if a32*a11-a12*a31<>0

  then

      begin

      if per13_x1>=x1

        then

            if per13_x2>=x2

              then

                begin

                bf13:=true;

                Label20.Caption:='Точка ('+FloatToStr(per13_x1)+';'+FloatToStr(per13_x2)+') входит в область ОДР';

                end

              else

                Label20.Caption:='Точка ('+FloatToStr(per13_x1)+';'+FloatToStr(per13_x2)+') не входит в область ОДР'

        else

          Label20.Caption:='Точка ('+FloatToStr(per13_x1)+';'+FloatToStr(per13_x2)+') не входит в область ОДР';

      end

  else

    Label20.Caption:=''; 

//находим  принадлежит ли точка пересений  неравенств 2 и 3 ОДР

if a32*a21-a22*a31<>0

  then

      begin

      if per23_x1>=x1

        then

            if per23_x2>=x2

              then

                begin

                bf23:=true;

                Label21.Caption:='Точка ('+FloatToStr(per23_x1)+';'+FloatToStr(per23_x2)+') входит в область ОДР';

                end

              else

                Label21.Caption:='Точка ('+FloatToStr(per23_x1)+';'+FloatToStr(per23_x2)+') не входит в область ОДР'

        else

          Label21.Caption:='Точка ('+FloatToStr(per23_x1)+';'+FloatToStr(per23_x2)+') не входит в область ОДР';

      end

  else

    Label21.Caption:=''; 
 
 

// Находим  max или min функции при пересечении  неравенств 2 и 3

if bf12 = false

  then

      if bf13 = false

          then

              if bf23 = true

                then

                  begin

                  fx1x2:=0*fx1+0*fx2+fc;

                  f23:=per23_x1*fx1+per23_x2*fx2+fc;

                   if form1.ComboBox4.Text = 'max'

                      then

                          if f23>fx1x2

                            then

                              Label22.Caption:='f(C) = f('+FloatToStr(per23_x1)+';'+FloatToStr(per23_x2)+') = '+FloatToStr(f23)+' - максимум функции'

                            else

                              Label22.Caption:='f(C) = f(0;0) = '+FloatToStr(fx1x2)+' - максимум функции'

                      else

                         if f23<fx1x2

                            then

                              Label22.Caption:='f(C) = f('+FloatToStr(per23_x1)+';'+FloatToStr(per23_x2)+') = '+FloatToStr(f23)+' - минимум функции'

                            else

                              Label22.Caption:='f(C) = f(0;0) = '+FloatToStr(fx1x2)+' - минимум функции'

                  end; 

// Находим  max или min функции при пересечении неравенств 1 и 3

if bf12 = false

  then

      if bf13 = true

          then

              if bf23 = false

                then

                  begin

                  fx1x2:=0*fx1+0*fx2+fc;

                  f13:=per13_x1*fx1+per13_x2*fx2+fc;

                   if form1.ComboBox4.Text = 'max'

                      then

                          if f13>fx1x2

                            then

                              Label22.Caption:='f(C) = f('+FloatToStr(per13_x1)+';'+FloatToStr(per13_x2)+') = '+FloatToStr(f13)+' - максимум функции'

                            else

                              Label22.Caption:='f(C) = f(0;0) = '+FloatToStr(fx1x2)+' - максимум  функции'

                      else

                         if f13<fx1x2

                            then

                              Label22.Caption:='f(C) = f('+FloatToStr(per13_x1)+';'+FloatToStr(per13_x2)+') = '+FloatToStr(f13)+' - минимум функции'

                            else

                              Label22.Caption:='f(C) = f(0;0) = '+FloatToStr(fx1x2)+' - минимум функции'

                  end; 
 

// Находим  max или min функции при пересечении  неравенств 1 и 2

if bf12 = true

  then

      if bf13 = false

          then

              if bf23 = false

                then

                  begin

                  fx1x2:=0*fx1+0*fx2+fc;

                  f12:=per12_x1*fx1+per12_x2*fx2+fc;

                   if form1.ComboBox4.Text = 'max'

                      then

                          if f12>fx1x2

                            then

                              Label22.Caption:='f(C) = f('+FloatToStr(per12_x1)+';'+FloatToStr(per12_x2)+') = '+FloatToStr(f12)+' - максимум функции'

                            else

                              Label22.Caption:='f(C) = f(0;0) = '+FloatToStr(fx1x2)+' - максимум функции'

                      else

                         if f12<fx1x2

                            then

                              Label22.Caption:='f(C) = f('+FloatToStr(per12_x1)+';'+FloatToStr(per12_x2)+') = '+FloatToStr(f12)+' - минимум функции'

                            else

                              Label22.Caption:='f(C) = f(0;0) = '+FloatToStr(fx1x2)+' - минимум функции'

                  end; 

// Находим  max или min функции при пересечении неравенств 2 и 3, 1 и 3

if bf12 = false

  then

      if bf13 = true

          then

              if bf23 = true

                then

                  begin

                  fx1x2:=0*fx1+0*fx2+fc;

                  f13:=per13_x1*fx1+per13_x2*fx2+fc;

                  f23:=per23_x1*fx1+per23_x2*fx2+fc;

                   if form1.ComboBox4.Text = 'max'

                      then

                          begin

                          if f13>fx1x2

                            then

                                if f13>f23

                                  then

                                    Label22.Caption:='f(C) = f('+FloatToStr(per13_x1)+';'+FloatToStr(per13_x2)+') = '+FloatToStr(f13)+' - максимум функции';

                                if f23>fx1x2

                                  then

                                      if f23>f13

                                        then

                                          Label22.Caption:='f(C) = f('+FloatToStr(per23_x1)+';'+FloatToStr(per23_x2)+') = '+FloatToStr(f23)+' - максимум функции';

                                if fx1x2>f13

                                  then

                                      if fx1x2>f23

                                        then

                                          Label22.Caption:='f(C) = f(0;0) = '+FloatToStr(fx1x2)+' - максимум функции';

                          end

                     else

                      begin

                          if f13<fx1x2

                            then

                                if f13<f23

                                  then

                                    Label22.Caption:='f(C) = f('+FloatToStr(per13_x1)+';'+FloatToStr(per13_x2)+') = '+FloatToStr(f13)+' - минимум функции';

                                if f23<fx1x2

                                  then

                                      if f23<f13

                                        then

                                          Label22.Caption:='f(C) = f('+FloatToStr(per23_x1)+';'+FloatToStr(per23_x2)+') = '+FloatToStr(f23)+' - минимум функции';

                                if fx1x2<f13

                                  then

                                      if fx1x2<f23

                                        then

Информация о работе Программный продукт "Системы линейных неравенств"