Рассчитать длину средней линии трапеции.



 

Фо́рмула Геро́на позволяет вычислить площадь треугольника (S) по его сторонам a, b, c:

аналогично вычисляются и остальные стороны.

где р — полупериметр треугольника: .

Треугольник однозначно можно определить по следующим тройкам основных элементов:

- a, b, c (равенство по трём сторонам);

- a, b, γ (равенство по двум сторонам и углу между ними);

- a, β, γ (равенство по стороне и двум прилежащим углам).

В данном примере доказательство основывается на соотношении сторон, если выполняются все следующие условия:

- a < b + c;

- b < c + a;

- c < a + b.

 

Нормальная матрица

 

 Матрица — математический объект, записываемый в виде прямоугольной таблицы чисел (или элементов кольца) и допускающий алгебраические операции (сложение, вычитание, умножение и др.) между ним и другими подобными объектами. Правила выполнения операций над матрицами сделаны такими, чтобы было удобно записывать системы линейных уравнений. Обычно матрицу обозначают Заглавной буквой латинского алфавита и выделяют круглыми скобками «(…)» (встречается также выделение квадратными скобками «[…]», двойными прямыми линиями «||…||») А числа, составляющие матрицу (элементы матрицы), обозначают той же буквой, что и саму матрицу, но маленькой. у каждого элемента матрицы есть 2 нижних индекса (aij) — первый «i» обозначает номер строки, в которой находится элемент, а второй «j» — номер столбца.

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

-

- -- произвольное число;

- ;

-

Норма матрицы согласована с нормой вектора ,если для любых x и A

Функционал является нормой матрицы A и называется нормой матрицы А, подчиненной норме вектора .


4. Результаты

 

Интерфейс подпрограммы Zad_1

На рисунке 1 изображено окно ввода координат точек А, В, С ,D трапеции. Для каждой точки нужно ввести координаты х, у.

 

На рисунке 2 изображен диалог выбора: выводить результат – на принтер или на экран. Чтобы вывести на принтер нажмите 1, а для того чтобы на экран 2.

 

Рисунок 2 – Диалог печати

 

На рисунке 3 изображен вывод результата на экран. Мы видим в диалоговом окне чему равна площадь треугольника.

 

Рисунок 3 – Вывод результата

 

Интерфейс подпрограммы Zad_2

 

На рисунке 4 отображено главное окно задания 2, в котором сначала производился ввод элементов массива, а затем уже вывод нового массива.

 

Рисунок 4 – Вывод результатов


 

Проверка

 

Проверим ход решения в электронных таблицах Ms Excel.

Когда мы производим нормирование матрицы мы находим абсолютное значение от каждого элемента матрицы. Далее мы находим максимальное значение каждого столбца матрицы. А затем уже выводим результирующую матрицу B = (bik), где bik = aii / ½½A½½1.


Заключение

Работа выполнена на языке Turbo Pascal фирмы Borland, прочно вошедшем в мир программирования в 1983 году и до сих пор являющимся удобным языком программирования для начинающих программистов, а также просто хорошим языком программирования, к которому обращаются как прикладные программисты, так и системные.

При разработке программного обеспечения производил вычисления и обработку данных, была разработана подпрограмма с использование графического режима экрана, использовались звуковые сигналы при ошибочном вводе данных, программный продукт написан в стиле структурного программирования. Все это характеризует то, что использовались возможности языка программирования Turbo Pascal для написания этого программного продукта.

При разработке курсовой работы был приобретен опыт работы с языком программирования, изучен синтаксис данного языка, основные конструкции, его семантика.

Работа с данным языком помогла приобрести навыки программирования.


Список использованной литературы

 

1. Вирт Никлаус Алгоритмы+структуры данных= программы. — М.: «Мир», 1985.

2. Грогоно Питер Программирование на языке Паскаль. — М.: «Мир», 1982.

3. Йенсен К., Вирт Н. Паскаль. Руководство для пользователя и описание языка. — М.: «Финансы и статистика», 1982.

4. Культин Н.Б. Delphi 6. Программирование на Object Pascal. — СПб.: «БХВ-Петербург», 2001. — С. 528. — ISBN 5-94157-112-7.

5. Моргун Александр Николаевич Программирование на языке Паскаль (Pascal). Основы обработки структур данных. — М.: «Диалектика», 2005. — С. 576. — ISBN 5-8459-0935-X.

6. Перминов Олег Николаевич Язык программирования Паскаль : Справочник. — М.: «Радио и связь», 1989. — С. 128. — ISBN 5-256-00311-9.


Приложение

 

Program kursovay;

uses crt;                {Подключение библиотеки}

var                           {Блок объявления переменных}

second:integer;       {Переменная для вывода меню}

c1,c2,c3,c4,c5,c6:char;   {Переменные для вывода рамки}

x1,x2,y1,y2,yf:integer; {Координаты для вывода сообщений}

Xa,Ya,Xb,Yb,Xc,Yc:integer; {Координаты для вывода сообщений}

ax,ay,az,bx,by,bz,cx,cy,cz:real; {Переменные для расчета сторон треугольн.}

 

Procedure Forma1;                {Процедура Forma1}

var x1,x2,y1,y2:integer;

procedure Frame (x1,x2,y1,y2:integer); {Процедура Frame}

var

x,y:integer;

c1,c2,c3,c4,c5,c6:char;

begin                        {Операторы присвоения}

c1:=chr(218);

c2:=chr(196);

c3:=chr(191);

c4:=chr(179);

c5:=chr(192);

c6:=chr(217);

gotoxy(x1,y1);                {Установка экрана на позицию x1,y1}               

write(c1);

for x:=x1+1 to x2-1 do write (c2); {Оператор цикла}

write (c3);                    {Оператор вывода переменной с3}

for y:=y1+1 to y2-1 do

   begin

       gotoxy (x1,y);         {Прочерчивание горизонтальной линии}

       write (c4);            {Оператор вывода переменной с4}                

       gotoxy (x2,y);

       write (c4);

  end;

       gotoxy (x1,y2);

       write (c5);

   for x:=x1+1 to x2-1 do write (c2);

       write(c6);

end;

    begin

         clrscr;             {Очистка экрана}

         x1:=4; x2:=76;

         y1:=4; y2:=23;

         frame (x1,x2,y1,y2);

          gotoxy (12,7);

         write (‘Название своего универа ');

          gotoxy (27,8);

         write ('ФИЛИАЛ ______________);

          gotoxy (33,10);

         write ('КУРСОВАЯ РАБОТА');

          gotoxy (19,11);

         write ('по дисциплине информатика и программирование');

          gotoxy (17,12);

         write ('на тему создание прикладного программного обеспечения');

           gotoxy (22,13);

         write ('в среде программирования Turbo Pascal');

          gotoxy (45,15);

write ('Работу выполнила: студентка');

  gotoxy (45,16);

         write (‘_____ курса группы ______');

          gotoxy (45,17);

         write (‘ФИО);

          gotoxy (45,18);

         write ('Работу проверил: ');

          gotoxy (45,19);

         write ('преподаватель кафедры ПИ');

          gotoxy (45,20);

         write (ФИО препода.');

         readkey;

end;

 

 

{Процедура экранная форма меню}

procedure Menu;

begin

TextBackGround(white); {тут можешь менять цвета}

TextColor(black);

Clrscr;

x1:=4;

x2:=76;

y1:=4;

y2:=21;

c1:=chr(205);

c2:=chr(201);

c3:=chr(187);

c4:=chr(186);

c5:=chr(200);

c6:=chr(188);

yf:=10;

gotoxy(23,yf);

writeln('1. " Рассчитать длину средней линии трапеции "');

yf:=yf+1;

gotoxy(23,yf);

writeln('2. "Пронумеровать матрицу по её второй норме"');

yf:=yf+1;

gotoxy(23,yf);

writeln('3. "Выход"');

yf:=yf+1;

gotoxy(23,yf);

gotoxy(23,yf);

writeln;

yf:=yf+1;

gotoxy(23,yf);

writeln('Введите номер задания для выполнения (1-3)');

yf:=yf+19;

gotoxy(23,yf);

writeln;

end;

 

 

{*************1 zadanie********************}

procedure zadanie1;

label1;

var

x1,x2,x3,x4:integer;

y1,y2,y3,y4:integer;

q:array[1..4] of integer;

k:array[1..4] of integer;

l:array[1..4] of integer;

z,a,i:integer;

Dlin1,Dlin2,Dlin3:real;

Begin

1:;

ClrScr;

Writeln(‘Введите координаты точки A(x,y)’);

Readln(x1,y1);

Writeln(‘Введите координаты точки b(x,y’);

Readln)x2,y2);

Writeln(‘Введите координаты точки C(x,y)’);

Readln(x3,y3);

Writeln(‘Введите координаты точки D(x,y)’);

Readln(x4,y4);

K[1]:=x2-x1;

K[2]:=x3-x2;

K[3]:=x4-x3;

K[4]:=x1-x4;

L[1]:=y2-y1;

L[2]:=y3-y2;

L[3]:=y4-y3;

L[4]:=y1-y4;

Z:=0;

A:=0;

For i:=1 to 4 do

Begin

If k[i]=0 then

Z:=z+1;

End;

If z>2 then

Begin

Writeln(‘неправильно заданы координаты’);

Goto 1;

End;

For i:=1 to 4 do

Begin

If l[i]=0 then

a:=a+1;

end;

if a>2 then

begin

writeln(‘неправильно заданы координаты’);

Goto 1;

End;

q[1]:=k[1]*l[3];

q[2]:=k3*l[1];

q[3]:=k[2]*l[4];

q[4]:=k[4]*l[2];

if q[1]=q[2] then

begin

if q[3]=q[4] then

begin

writeln(‘неправильно введены координаты!’);

readln;

Goto 1;

End

Else

Writeln(‘координаты введены правильно!’);

End

Else

Begin

If q[3]=q[4] then

Writeln(‘неправильно введены координаты!’);

Readln;

Goto 1;

End;

End;

Dlin1:=abs(sqrt(sqr(x2-x1)+sqr(y2-y1)));

Dlin2:=abs)sqrt(sqr(x3-x4)+sqr(y3-y4)));

Dlin3:=(dlin1+dlin2)/2;

Writeln(‘Длинна средней линии трапеции ABCD=’,dlin3:10:2);

end;

 

  

 

{END OF ZADANIE1*******************************************}

 

 

{2 zadanie***********************************************}

{Процедура задания №2}

procedure Zadanie2;

 

const

n=5;

var

i,k,x1,y1:integer;

Max:array [1..n] of real;

A:array [1..n,1..n] of real;

B:array [1..n,1..n] of real;

 

begin

clrscr;

  x1:=4;

  y1:=4;

  writeln ('Vvod dannix' );

  for i:=1 to n do

  begin

       for k:=1 to n do

       begin

            Gotoxy(x1,y1);

            readln(a[i,k]);

            x1:=x1+8;

       end;

       x1:=4;

       y1:=y1+1;

  end;

  Gotoxy(x1,y1);

  writeln ('Vivod dannix');

  x1:=4;

  y1:=y1+2;

for i:=1 to n do max[i]:=0;

   for k:=1 to n do

   for i:=1 to n do

   if abs(a[i,k])>max[k] then

        max[j]:=abs(a[i,k]);

   Gotoxy(x1,y1);

   writeln('Vvivod matrichi B[i,k]');

   x1:=4;

   y1:=y1+1;

for i:=1 to n do

begin

writeln;

   for k:=1 to n do

   begin

b[i,k]:=a[i,k]/max[k];

        write (B[i,k]:5:2);

 

   end;

end;

readkey;

end;

 

{END OF ZADAN2*******************************************}

 

 

begin

Forma1;

clrscr;

second:=0;

while second <> 3 do

begin

     Menu;

     readln(second);

     case second of

          1: zadanie1;

          2: zadanie2;

          3: exit;

     end;

end;

end.

 


Дата добавления: 2019-07-15; просмотров: 207; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!