Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ekzamen_KhIO_I_semestr_-_shpori.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2.07 Mб
Скачать

3.Трикутник

program Project3;

{$APPTYPE CONSOLE}

uses

SysUtils;

var p,s,x1,y1,x2,y2,x3,y3,l21,l32,l31:real;

begin

x1:=1;

y1:=1;

x2:=5;

y2:=7;

x3:=9;

y3:=1;

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

l32:=sqrt(sqr(x3-x2)+sqr(y3-y2)) ;

l31:=sqrt(sqr(x3-x1)+sqr(y3-y1)) ;

p:=(l21+l32+l31)/2;

s:=sqrt(p*(p-l21)*(p-l32)*(p-l31));

writeln('p= ',p);

writeln('s= ',s);

readln

end.

Або через функцію

program trukytnuk2;

{$APPTYPE CONSOLE}

uses

SysUtils;

function l(x1,x2,y1,y2:real):real;

begin

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

end;

function p(ll,ln,lr:real):real;

begin

p:=((ll+ln+lr)/2);

end;

function s(pt,ll,ln,lr:real):real;

begin

s:=sqrt(pt*(pt-ln)*(pt-ll)*(pt-lr));

end;

var pp,x1,y1,x2,y2,x3,y3,l21,l32,l31,sp:real;

begin

x1:=1;

y1:=1;

x2:=5;

y2:=7;

x3:=9;

y3:=1;

l21:=l(x2,x1,y2,y1) ;

l32:=l(x3,x2,y3,y2) ;

l31:=l(x3,x1,y3,y1) ;

pp:=p(l21,l32,l31);

sp:=s(pp,l21,l32,l31);

writeln('sp= ',sp);

writeln('pp=',pp);

readln

end.

4.Функція методу гАуса

#include <iostream.h>

#include <conio.h>

#include <math.h>

void GAUSS(double A [20][20],double b [20],int N,double x [20])

{ int k; double R;

if (N == 1)

{if (fabs(A[1][1]) < 1E-7 )

{cout << "systema vyrodzena";

getch();}

else

{x[1] = b[1]/A[1][1];

cout<<"[x1]="<<x[1];

getch();}}

for (int i = 1; i <= N-1; i++)

{k = i;

R = fabs(A[i][i]);

for (int j = i+1; j <= N; j++)

{if (fabs(A[j][i]) >= R)

{k = j;

R = fabs(A[j][i]);}}

if (R <= 1E-7)

{cout << "systema vyrodzena";

getch();}

if (k != i)

{R = b[k];

b[k] = b[i];

b[i] = R;

for (int j = i; j <= N; j++)

{R = A[k][j];

A[k][j] = A[i][j];

A[i][j] = R;}}

R = A[i][i];

b[i] = b[i]/R;

for (int j = 1; j <= N; j++)

{A[i][j] = A[i][j]/R;}

for (int k = i+1; k <= N; k++)

{R = A[k][i];

b[k] = b[k]-R*b[i];

A[k][i] = 0;

for (int j = i+1; j <= N; j++)

{A[k][j] = A[k][j]-R*A[i][j];}}}

if (fabs(A[N][N]) <= 1E-7)

{cout << "systema vyrodzena";

getch();}

x[N] = b[N]/A[N][N];

for (int i = N - 1; i >= 1; i--)

{R = b[i];

for (int j = i+1; j <= N; j++)

{R = R - A[i][j] * x[j];}

x[i] = R;}}

main()

{

double A [20][20];

double b [20];

int N;

double x [20];

int k;

double R;

cout << "vvedit rozmir matruzi \n N=";

cin >> N;

for (int i = 1; i <=N;i++)

for (int j = 1; j <= N;j++)

{cout << "vvedit a[";

cout << i;

cout << ",";

cout << j;

cout << "]=";

cin >> A[i][j];}

for (int j = 1; j <= N; j++)

{cout << "vvedit b[";

cout << j;

cout << "]=";

cin >> b[j];} ;

GAUSS(A,b,N,x);

cout << "\nRozvyazok:\n" ;

for (int i = 1; i <= N; i++)

{

cout << "\n x[";

cout << i;

cout << "]=";

cout << x[i];} ;getch(); }

Білет 26

1 Метод Крамера та його недоліки

Одним із практичних застосувань алгоритму обчислення визначника квадратної матриці є програмування відомого методу Крамера для розв'язування СЛАР третього порядку (N = 3). Запишемо цю систему:

A11x+A12y+A13z=b1

A21x+A22y+A23z=b2

A31x+A32y+A33z=b6

Введемо позначення визначника системи:

a11 a12 a13

Δ = a21 a22 a23

a31 A32 а33

Якщо детермінант не = 0, тоді розв'язок системи (3.1.6) однозначно обчислюється за формулами Крамера:

ДЕ Недоліком метода Крамера є більша кількість обчислень які потрібно зробити, для знаходження розв’язків рівняння ніж методом Гауса.

2 Структура програми мовою с++

//коментарі

#include <назва бібліотечного файлу №1 >

…………

#include < назва бібліотечного файлу №1>

< інші директиви препроцесора>

…………

< оголошення глобальних змінних>

< оголошення глобальних сталих>

< оголошення та створення функцій користувача>

………

<тип результату функції > main(опис формальних параметрів)

{

< оголошення локальних змінних>

< оголошення локальних сталих>

< команди>

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]