- •Відшукати корені слар з послідовним виключенням змінних або методом Гауса з точністю до . Встановити чи система вироджена.
- •Знайти обернену матрицю до даної. Знайти розв’язки слар матричним методом.
- •3. Створити проект для демонстрації викорстання контейнерів та компонентів для відображення інформації.
- •Точки а(4;1), в(3;5), с(-1;4), d(0;0) є вершинами квадрата. Знайти площу квадрата, довжину його сторони, та координати середин сторін.
- •Знайти периметр трикутника abc, з вершинами a(8,0,7), b(10,2,8), c(10,-2,8).
Я Костюкови Іван Іванович проходив обчислювальну практику в Рівненському державному гуманітарному університеті, з 11.01.2012 по 21.01.2012.
Мною були розв’язані наступні задачі, з них:
в середовищі Turbo Pascal
Дано два дійсні числа. Знайти значення виразу (використовуючи процедури)
Розв’язання:
Результат:
Скласти програму для обчислення площ різних геометричних фігур (використовуючи вибірку)
Розв’язання:
Результат:
За даним числовим значенням дня тижня вивести інформацію про цей день (з використанням вказівки узагальненого розгалуження)
Розв’язання:
Результат:
в середовищі Microsoft Exel
Уточнити корені рівняння методом дихотомії із граничною абсолютною похибкою на проміжку [0;1].
Розв’язання:
За умовою задачі маємо , а візьмемо 0, - середина відрізка [ ; ].
Метод половинного ділення (дихотомії), для проміжку (0;1) |
|||||||
і |
аі |
сі |
bі |
F(аі) |
F(сі) |
F(аі)*F(сі) |
l аі-ві l<ε |
1 |
0 |
0,5 |
1 |
1 |
-1,4375 |
-1,4375 |
не є коренем |
2 |
0 |
0,25 |
0,5 |
1 |
0,441406 |
0,4414063 |
не є коренем |
3 |
0,25 |
0,375 |
0,5 |
0,441406 |
-0,31616 |
-0,139556 |
не є коренем |
4 |
0,25 |
0,3125 |
0,375 |
0,441406 |
0,106216 |
0,0468846 |
не є коренем |
5 |
0,3125 |
0,34375 |
0,375 |
0,106216 |
-0,09383 |
-0,009966 |
не є коренем |
6 |
0,3125 |
0,328125 |
0,34375 |
0,106216 |
0,008952 |
0,0009509 |
не є коренем |
7 |
0,328125 |
0,335938 |
0,34375 |
0,008952 |
-0,04174 |
-0,000374 |
не є коренем |
8 |
0,328125 |
0,332032 |
0,335938 |
0,008952 |
-0,01622 |
-0,000145 |
не є коренем |
9 |
0,328125 |
0,330079 |
0,332032 |
0,008952 |
-0,00359 |
-3,22E-05 |
не є коренем |
10 |
0,328125 |
0,329102 |
0,330079 |
0,008952 |
0,002688 |
2,406E-05 |
не є коренем |
11 |
0,329102 |
0,329591 |
0,330079 |
0,002688 |
-0,00045 |
-1,22E-06 |
Є коренем |
Відшукати корені слар з послідовним виключенням змінних або методом Гауса з точністю до . Встановити чи система вироджена.
Розв’язання:
Переконаємося, що система вироджена і добре обумовлена. Для цього обрахуємо визначник цієї матриці.
Наша система вироджена.
Шукаємо корені.
Крок |
Рядок |
Коефіцієнти при змінних |
Вільний член |
Контроль |
|||
Х1 |
Х2 |
Х3 |
Контрольна сума |
Рядкова сума |
|||
1 |
1 |
1,21 |
-0,18 |
0,75 |
0,11 |
1,89 |
1,89 |
2 |
0,13 |
0,75 |
-0,11 |
2 |
2,77 |
2,77 |
|
3 |
0,01 |
-0,33 |
0,11 |
0,13 |
-0,08 |
-0,08 |
|
2 |
4 |
1 |
-0,14876 |
0,619835 |
0,090909091 |
1,561983471 |
1,561983471 |
5 |
|
0,769339 |
-0,19058 |
1,988181818 |
2,566942149 |
2,566942149 |
|
6 |
|
-0,32851 |
0,103802 |
0,129090909 |
-0,095619835 |
-0,095619835 |
|
3 |
7 |
|
1 |
-0,24772 |
2,584273284 |
3,336556021 |
3,336556021 |
8 |
|
|
0,022423 |
0,978056719 |
1,00048018 |
1,00048018 |
|
4 |
9 |
|
|
1 |
43,61756252 |
44,61756252 |
44,61756252 |
10 |
|
1 |
|
13,38909648 |
14,38909648 |
14,38909648 |
|
11 |
1 |
|
|
-24,95300374 |
-23,95300374 |
-23,95300374 |
Вектор розв’язку має вид:
Знайти обернену матрицю до даної. Знайти розв’язки слар матричним методом.
Розв’язання:
Встановимо невиродженість та обумовленість заданої системи лінійних алгебраїчних рівнянь. Для встановлення цих даних знайдемо визначник цієї матриці.
Обчислюємо обернену матрицю методом Гауса.
Рядки |
Коефіцієнтиосновної матриці |
Вільні члени |
Контрольна сума |
Рядкова сума |
|||||||
1 |
1,21 |
-0,18 |
0,75 |
1 |
0 |
0 |
2,78 |
2,78 |
|||
2 |
0,13 |
0,75 |
-0,11 |
0 |
1 |
0 |
1,77 |
1,77 |
|||
3 |
0,01 |
-0,33 |
0,11 |
0 |
0 |
1 |
0,79 |
0,79 |
|||
4 |
1 |
-0,149 |
0,61983 |
0,826446 |
0 |
0 |
2,297521 |
2,29752 |
|||
5 |
|
0,7693 |
-0,1906 |
-0,10744 |
1 |
0 |
1,471322 |
1,47132 |
|||
6 |
|
-0,329 |
0,1038 |
-0,00826 |
0 |
1 |
0,767025 |
0,76702 |
|||
7 |
|
1 |
-0,2477 |
-0,13965 |
1,29982 |
0 |
1,91245 |
1,91245 |
|||
8 |
|
|
0,02242 |
-0,05414 |
0,42701 |
1 |
1,395288 |
1,39529 |
|||
9 |
|
|
1 |
-2,41449 |
19,0428 |
44,5961 |
62,22449 |
62,2245 |
|||
10 |
|
1 |
|
-0,73776 |
6,01705 |
11,0472 |
17,32653 |
17,3265 |
|||
11 |
1 |
|
|
2,21328 |
-10,908 |
-25,9989 |
-33,6939 |
-33,6939 |
Отримана обернена матриця
Знайдемо розв’язки СЛАР матричним методом
-
Матричний метод
Обернена матриця
В
Х
2,21
-10,9
-25,999
0,11
-24,953
-0,74
6,017
11,047
2
13,3891
-2,41
19,04
44,596
0,13
43,6176
Отже маємо розв’язки СЛАР:
в середовищі Borland C++
Описати функції для визначення чи два вектори в n-мірному просторі колінеарні, перпендикулярні. У функції передаються масиви компонент векторів. Протестувати роботу цих функцій. Доступ до елементів масиву здійснювати за допомогою адресного виразу.
Розв’язання:
Результат:
Описати функцію, що знаходить суму всіх елементів списку.
Розв’язання:
Результат:
Описати функції для роботи із динамічною структурою типу стек.
Розв’язання:
Результат:
в середовищі Delphi7
1. Створити проект для обчислення суми на депозитному рахунку.
На головній формі розмістити текстові поля, кнопки, мітки;
Для введення вхідних даних використати маски введення;
Термін дії договору – кількість місяців
При відсутності одного з параметрів заборонити доступ до кнопки «Обрахунок»
При натискуванні на кнопку «Очистити» всі текстові поля очищаються;
Запрограмувати реакцію програми на натискання всіх кнопок.
Розв’язання:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Mask, StdCtrls, Buttons;
type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
MaskEdit1: TMaskEdit;
MaskEdit2: TMaskEdit;
MaskEdit3: TMaskEdit;
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
MaskEdit1.Clear;
MaskEdit2.Clear;
MaskEdit3.Clear;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
s:Real;
p,v:integer;
begin
s:=strtofloat(MaskEdit1.Text);
p:=StrToInt(MaskEdit2.Text);
v:=StrToInt(MaskEdit3.Text);
s:=s+(s/100*p*v);
Edit1.Text:=IntToStr(trunc(int(s)));
Edit2.Text:=IntToStr(trunc(frac(s)*100));
end;
end.
Результат:
2. Створити проект для побудови графіка функції y=a sin kx на заданому проміжку.
Передбачити введення проміжку
Передбачити введення коефіцієнтів a та k
Передбачити вибір кольору графіка
Передбачити масштабування графіка згідно розмірів форми.
Розв’язання:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
GroupBox1: TGroupBox;
ColorBox1: TColorBox;
Image1: TImage;
Label4: TLabel;
Button1: TButton;
Button2: TButton;
ComboBox1: TComboBox;
Label3: TLabel;
Label5: TLabel;
GroupBox2: TGroupBox;
LabeledEdit1: TLabeledEdit;
LabeledEdit2: TLabeledEdit;
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure LabeledEdit1KeyPress(Sender: TObject; var Key: Char);
procedure LabeledEdit2KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
x0,y0:Integer;
t:real;
implementation
{$R *.dfm}
procedure Grafik;
var
i:integer;
begin
with Form1.Image1.Canvas do begin
pen.Width:=3; pen.Color:=clBlue;
MoveTo(10,y0); LineTo(x0*2-10,y0);
MoveTo(x0,10); LineTo(x0,y0*2-10);
MoveTo(x0*2-30,y0+5); LineTo(x0*2-10,y0);
MoveTo(x0*2-30,y0-5); LineTo(x0*2-10,y0);
MoveTo(x0+5,30); LineTo(x0,10);
MoveTo(x0-5,30); LineTo(x0,10);
Font.Color:=clRed; Font.Style:=[fsBold];
Font.Size:=10;
TextOut(x0-15,y0+5,'0'); TextOut(x0*2-30,y0+8,'X');
TextOut(x0-18,12,'Y');
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Image1.Picture:=nil;
Grafik;
Button2.Enabled:=False;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i:Byte;
begin
t:=10;
x0:=Form1.Image1.Width div 2;
y0:=Form1.Image1.Height div 2;
Grafik;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
a,k,y,x:real;
begin
x:=-20;
Button2.Enabled:=True;
a:=StrToFloat(LabeledEdit1.Text);
k:=StrToFloat(LabeledEdit2.Text);
while x<=20 do begin
y:=a*sin(k*x);
Image1.Canvas.Pen.Width:=2;
if ((x0+round(a*t))>=10) and ((x0+round(a*t))<=(x0*2-30)) then
Image1.Canvas.Pixels[x0+round(x*t),y0-round(y*t)]:=ColorBox1.Colors[ColorBox1.ItemIndex];
x:=x+0.01;
end;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
t:=(ComboBox1.ItemIndex+1)*10;
t:=t*0.2;
if Button2.Enabled = true then begin
Image1.Picture:=nil;
Grafik;
Button1.Click
end;
end;
procedure TForm1.LabeledEdit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9', #8, ',']) then key:=#0;
end;
procedure TForm1.LabeledEdit2KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9', #8, ',']) then key:=#0;
end;
end.
Результат: