- •3.Написати процедуру метода Гауса по блок-схемі.
- •2.Розкладання періодичної функції в ряд Фур'є (теорія)
- •3.Написати программу методу половинного ділення за блок-схемою:
- •4.Програма множення матриці на вектор.
- •3.Програма табулювання функції із записом результатів у масив і виведення на текстовий екран
- •4.Знаходження визначеного інтеграла методом Сімпсона
- •3.Програма табулювання функції із записом результатів у масив і виведення на текстовий екран.
- •1.Оператори циклів з відомою кількістю повторень. Ітераційні цикли. Процедури дострокового завершення циклу.
- •3.Запрограмувати метод крамера
- •4.Написати функцію побудови і табулювання ряду Фур’є(за блок схемою)
- •4. Інтеграли з заданою точністю.
- •Функції
- •3.Програма розв’язання квадратного рів-ня (консольна)
- •4.Програма Методу половинного ділення
- •3.Програма Методу половинного ділення
- •4 Метод Ньютона (Консольний)
- •1.Масив (Array) – це обмежена, впорядкована сукупність однотипних пронумерованих
- •4.Програма переглядач графічних файлів
- •1.Метод Ньютона для розвязання нелінійних рівнянь.
- •4. Програма розв’язання квадратного рівняння.
- •1.Компонента tChart та приклад.
- •2.Вказівники
- •3. Програма множення матриці на вектор.
- •4.Метод Ньютона(вік)
- •3.Програма трикутник
- •3.Програма знаходження мінімального і максимального елемента матриці!!!!
- •4.«Елементи_управління»
- •3.Метод Ньютона
- •4.Метод Монте Карло
- •1.Алгоритми
- •3.Фурьє Фурьє
- •3.Запрограмувати метод Крамера (Delphi).
- •2.Функції вводу/виводу мови с
- •4.Метод прямокутників(вкладений файл)
- •4.Табулювання функції із виведенням результатів на екран
- •3.Множення матриці на вектор Делфі
- •3.Трикутник
- •4.Функція методу гАуса
- •1 Метод Крамера та його недоліки
- •3 Програма знаходження мінімального максимального елемента матриці
- •4 Метод половинного ділення
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(опис формальних параметрів)
{
< оголошення локальних змінних>
< оголошення локальних сталих>
< команди>
}
