Смекни!
smekni.com

Метод Крамера (стр. 2 из 3)

Перше рівняння системи (5) помножимо на

, друге – на -
і додамо; після очевидних перетворень отримаємо рівняння

де

Таким чином, якщо

, то система (5) еквівалентна системі

Якщо

, то очевидно, люба пара чисел (x;y), де

, (6)

являється рішенням системи (5).

Із (6) і останнього рівняння системи (4) знаходимо

(7)

Аналогічно, якщо

і
, то люба трійка чисел (x;y;z), де
, а y та z знаходяться в формулах (6) і (7), являється рішенням системи (1).

Якщо

, а
, то система (5), а також і система (1) не мають розв’язків.

Нехай тепер

. Тоді

.

Підставивши це значення х в друге рівняння системи (5), знайдемо

,

де


Підставивши отримані значення x і y в третє рівняння системи (4), отримаємо

,

де

.

Випливає, якщо

, то система (1) має одне рішення, яке знаходиться за формулами:

.

Ці формули і називаються формулами Крамера.


2. Практична частина

2.1 Архітектура програми

Представлена програма реалізується програмою Kramer. Написана на мові Паскаль. Вона включає в себе ряд процедур, які забезпечують виконання вводу, обчислень та виводу на екран розв’язку задачі.

Для зменшення обсягу тіла програми використовується модуль zast.tpu (лістінг модуля додається до проекту), в якому знаходяться всі головні компоненти, які використовують процедури (інтерфейси, описи тощо).

Перед описом процедур здійснюється опис міток (розділ міток) і змінних (розділ змінних). Потім (після опису процедур) іде розділ операторів (тіло програми), що заключається в операторні дужки, тобто Begin…End. В ньому вказується послідовність дій, що повинні використовуватись ЕОМ.

Запуск програми здійснюється таким чином:

Спосіб. З середовища будь-якої операційної оболонки шляхом запуску Kramer.exe (попередньо програма має бути відкомпільована з опцією Destination Memory).

Спосіб. З головного меню інтегрованого середовища Turbo Pascal шляхом вибору опції Run (програма попередньо повинна бути завантажена в ОП – File, Open, Kramer.pas).

Після запуску програми будь-яким методом вона видасть на екран головне меню, яке пропонує одну із опцій:

Про програму

Ввід коефіцієнтів

Результати

Вихід

При виборі певного пункту активізується відповідна процедура. Завершення роботи програми і повернення в середовище системи програмування Turbo Pascal здійснюється при виборі пункту меню “Вихід”. Програма здійснює обчислення системи рівнянь методом Крамера та виводить результати на екран дисплею.

В програмі використовуються такі процедури:

Vvid – призначена для вводу значень.

Vyvid – призначена для обчислень та виводу результатів.

2.2 Опис програми

заголовок програми

підключення зовнішніх модулів

опис міток

{004}-{007} опис змінних

{008} заголовок процедури vvid

початок процедури

відключення графічного режиму

очистка екрану

встановлення кольору шрифта

вивід таблиці вводу

{014}-{025} ввід лівої і правої частини рівняння в відповідні клітинки

кінець процедури vvid

заголовок процедури vivid

початок процедури

відключення графічного режиму

очистка екрану

встановлення кольору

вивід таблиці виводу

обчислення дельта для рівняння

обчислення дельта ікс

обчислення дельта ігрик

обчислення дельта зет

обчислення ікс

обчислення ігрика

обчислення зет

вивід дельта

вивід дельта ікс

вивід дельта ігрик

вивід дельта зет

вивід ікса

вивід ігрика

вивід зет

порожній ввід

кінець процедури vivid

початок головного блоку програми

встановлення мітки pt

присвоєння змінній rob 1

підключення графічного режиму оператором ini

вивід меню оператором zas

поки змінна q не буде дорівнювати *

якщо натиснута будь-яка клавіша то виконуються наступні дії

читання натиснутої клавіші і присвоєння їй змінній q

початок циклу по розпізнані натиснутої клавіші

стрілочка “вниз” то якщо rob>4 тоді rob=1,якщо rob<4 тоді rob=rob+1

стрілочка “вверх” то якщо rob>1 тоді rob=rob-1,якщо rob<1 тоді rob=4

клавіша “Ентер” тоді: розпізнання змінної rob якщо rob=1 то на екран з модуля zas виводиться процедура about, яка виводить інформацію про програму, а також здійснюється перехід на мітку pt

якщо змінна rob=2 тоді то на екран з модуля zas виводиться процедура vvid в якій описуються всі змінні для процедури vvid програми, а також вивід рамки для вводу змінних. Перехід на мітку pt

якщо змінна rob=3 тоді то на екран з модуля zas виводиться процедура vyvid в якій описуються всі змінні для процедури vyviid програми, а також вивід рамки для вводу змінних. Перехід на мітку pt

якщо змінна rob=3 то здійснюється вихід в систему

кінець розпізнаня змінної rob

кінець циклу визначення натиснутої клавіші

цикл якщо rob дорівнює

1 тоді очистка екрану і виконаня процедури punkt1

2 тоді очистка екрану і виконаня процедури punkt2

3 тоді очистка екрану і виконаня процедури punkt3

4 тоді очистка екрану і виконаня процедури punkt4

кінець циклу “якщо rob дорівнює”

кінець циклу “якщо натиснута клавіша”

кінець циклу “поки q не буде дорівнювати *”

кінець головного блоку програми

Опис модуля zas.tpu

Інтерфейсна секція модуля

unit zast;

{$n+}

interface

procedure ini;

procedure about;

procedure clear;

procedure punkt1;

procedure punkt2;

procedure punkt3;

procedure punkt4;

procedure vivyd;

procedure vid;

procedure zas;

Процедура ini використовується для підключення графічних модулів, а також графічного режиму.

Процедура about дає користувачу інформацію про призначення програми та розробника.

Процедура clear повертає пункти меню в початковий вигляд.

Процедури punkt1, punkt2, punct3, punct4 маркірують відповідно пункти меню у другий колір для вигляду переходу курсору по пунктам меню.

Процедури vvid та vyvid забезпечують вивід рамок для вводу та виводу даних в програму/з прорами.

Процедура zas виводить малюнок головного меню.

2.3 Контрольний приклад та результат машинного експерименту

Випробування будь-якої системи є найбільш відповідальний та пов’язаний з найбільшими труднощами і найбільшими втратами часу.

Відладка і тестування – найважливіші етапи життєвого циклу програм. Не можна зробити висновки про правильність виконання програми тільки на підставі того, що вона відкомпільована і видає якісь числові дані, адже в ній все ж ще можуть міститись логічні помилки. Тому необхідно здійснити “ручну” перевірку машинних результатів.

Отже задача: Розв’язати систему лінійних рівнянь з трьома невідомими за допомогою формул Крамера

Знайдемо


Так, як

0, то система має одне рішення.

Тепер знайдемо

Підставивши знайдені визначники в формули Крамера будемо мати:


Висновки

Зваживши на велику вартість готових формових пакетів, надзвичайно важливо вміти самостійно складати програми для роз’язку окремих типів задач, хоча створення програмного забезпечення зараз являється не областю для програмістів – одинаків, а високотехнічною структурою. Більшість комерційних програмних продуктів являються дуже складними витворами та створені колективами, в які часто входять десятки висококваліфікованих програмістів. Значно більше людей в фірмах – розробниках програмного забезпечення зайнятих організацією продажу, маркетингом, кур’єрством, консультаційним обслуговуванням покупців і т.д. Найбільш відомою є фірма Microsoft, яка займається розробкою програмного забезпечення як для користувацьких програм так і для апаратного програмування.