Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Обчислювальна практика1.docx
Скачиваний:
1
Добавлен:
31.08.2019
Размер:
466.07 Кб
Скачать

Я Костюкови Іван Іванович проходив обчислювальну практику в Рівненському державному гуманітарному університеті, з 11.01.2012 по 21.01.2012.

Мною були розв’язані наступні задачі, з них:

в середовищі Turbo Pascal

  1. Дано два дійсні числа. Знайти значення виразу (використовуючи процедури)

Розв’язання:

Результат:

  1. Скласти програму для обчислення площ різних геометричних фігур (використовуючи вибірку)

Розв’язання:

Результат:

  1. За даним числовим значенням дня тижня вивести інформацію про цей день (з використанням вказівки узагальненого розгалуження)

Розв’язання:

Результат:

в середовищі Microsoft Exel

  1. Уточнити корені рівняння методом дихотомії із граничною абсолютною похибкою на проміжку [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. Відшукати корені слар з послідовним виключенням змінних або методом Гауса з точністю до . Встановити чи система вироджена.

Розв’язання:

Переконаємося, що система вироджена і добре обумовлена. Для цього обрахуємо визначник цієї матриці.

Наша система вироджена.

Шукаємо корені.

Крок

Рядок

Коефіцієнти при змінних

Вільний член

Контроль

Х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

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++

  1. Описати функції для визначення чи два вектори в n-мірному просторі колінеарні, перпендикулярні. У функції передаються масиви компонент векторів. Протестувати роботу цих функцій. Доступ до елементів масиву здійснювати за допомогою адресного виразу.

Розв’язання:

Результат:

  1. Описати функцію, що знаходить суму всіх елементів списку.

Розв’язання:

Результат:

  1. Описати функції для роботи із динамічною структурою типу стек.

Розв’язання:

Результат:

в середовищі Delphi7

1. Створити проект для обчислення суми на депозитному рахунку.

  1. На головній формі розмістити текстові поля, кнопки, мітки;

  2. Для введення вхідних даних використати маски введення;

  3. Термін дії договору – кількість місяців

  4. При відсутності одного з параметрів заборонити доступ до кнопки «Обрахунок»

  5. При натискуванні на кнопку «Очистити» всі текстові поля очищаються;

  6. Запрограмувати реакцію програми на натискання всіх кнопок.

Розв’язання:

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.

Результат: