Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПОСІБНИК МКМ 2009.doc
Скачиваний:
18
Добавлен:
25.04.2019
Размер:
1.94 Mб
Скачать

{Декларативна частина}

const

KeIvc = 273; {оголошення константи KeIvc}

var

tceIs, tkeIv: inteqer; {оголошення змінних tceIs. tkeIn}

beqin {операторна частина}

{запросити користувача до введення числа}

writeIn (‘CeIsius temperature:’);

readin(tceIs); {ввести із клавіатури ціле число та записати його в змінну tceIs}

tkeIv :=tceIs + KeIvc; {обчислити суму значень двох змінних, запам’ятати її у змінній tkeIv, вивести пояснення і значення змінної tkeIv}

writeIn(‘KeIvin temperature: ‘ ,tkeIv);

writeln('press Enter');

readln;

end.{кінець програми}

Приклад Д2. Блок-схема і програмний код обчислення змін ваги та довжини риб за допомогою лінійної залежності формули (2.1.5), (2.1.8):

Блок-схема

Лістінг програмного коду

program EX_2;

{декларативна частина}

Var

а,в,m, L : real; {оголошення дійсних змінних а,в,m, L }

N, t : integer; {оголошення цілочислових змінних N, t}

label 1; {оголошення позначки}

begin

write ('Vvedite nomer varianta N=');

readln(N);

t := 0;

writeln(' t | m | L ');

writeln('----+--------+-------');

1:

t := t + 1;

....a:= N/20;

m := a*t;{ Розрахунок ваги риби ф.2.1.5}

....b:=N;

L := b*t;{ Розрахунок довжини риби ф.2.1.7}

writeln(' ', t:2, ' | ', m:5:3, ' | ', L:5:3);

if t < 10 then {умовний оператор, десять розрахунків по часу }

goto 1; {безумовний оператор }

writeln;

writeln('press Enter');

readln;

end.{кінець програми}

Завдання для самостійної роботи:

Скласти блок-схему і програму розрахунку чисельності популяцій за

«м 'якою» моделлю розділ 3.5.

Приклад Д3 Розв’язування системи линійних рівнянь методом Гаусса

За допомогою наведеної нижче програми можна знайти розв’язки неоднорідної системи п лінійних алгебраїчних рівнянь з п невідомими:

(1)

Спочатку знаходиться максимальний за модулем коефіцієнт при (назвемо його ведучим). Подальші обчислення проводяться при умові, що він за модулем більший точності ε . Відповідне рівняння переставляється з першим і коефіцієнти цього рівняння діляться на . В результаті дістанемо:

За допомогою цього рівняння виключаємо x1 з системи (1):

(2)

Далі знаходимо максимальний за модулем коефіцієнт при ( новий ведучий елемент) і ставимо це рівняння на перше місце в системі (2). Ділимо перше рівняння системи (2) на і виключаємо з системи (2). Виключаючи далі дістанемо систему

(3)

Якщо на якомусь етапі значення ведучого елемента за модулем буде меншим від є, то це означає, що матриця А вироджена або близько до виродженої. При цьому система або не сумісна, або має безліч розв’язків. Обчислення не виконуються, на екран виводиться повідомлення «НЕ ВИЗНАЧЕНО».

Виключаючи з системи (3) послідовно змінні за формулою.

(4)

Дістаємо розв’язки системи (1).

У програмі використовуються змінні: n – кількість рівнянь і невідомих; а- коефіцієнти розширеної матриці системи; ε – точність обчислень, причому модуль ведучого елемента повинен бути більшим від ε; y –значення ведучого елемента; wробоча змінна; х – розв’язок системи рівнянь; i, j, k – змінні циклів.

Контрольні приклади (задаються розширені матриці).

1) ; 2) - Відповідь НЕ ВИЗНАЧЕНО.

Вірна відповідь х1=х2=х3=х4 = 1

Лістінг програмного коду

{Програма GAUSS. Розв'язування системи лiнiйних рiвнянь методом Гаусса

з вибором максимального ведучого елемента

У програмi використовуються змiнн_: n - кiлькiсть рiвнянь i невiдомих;

а- коефiцiєнти розширеної матрицi системи; e - точнiсть обчислень,

причому модуль ведучого елемента повинен бути бiльшим вiд e;

y -значення ведучого елемента; w - робоча змiнна;

х - розв'язок системи р_внянь;

i, j, k - змiннi циклiв.}

Program GAUSS;

CONST dim1 = 20;

Dim2 = 21; {dim2 = dim1+1}

TYPE ar1 = ARRAY [1..dim1, 1..dim2] OF Real;

ar2 = ARRAY [1..dim1] OF Real;

Var