47558 (Метод Жордана Гаусса), страница 3

2016-07-30СтудИзба

Описание файла

Документ из архива "Метод Жордана Гаусса", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "47558"

Текст 3 страницы из документа "47558"

Виклик процедури Vikno

Виклик процедури Windo

Закінчення процедури Wind

Заголовок процедури Vvidn

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

Виклик процедури Wind із заданням назви виводячого вікна “Ввід розмірності квадратної матриці”.

{063} - {064} Ввід розмірності

{065} - {069} Перевірка умови чи часом не введена розмірність більша за 20, якщо так то виводиться на екран повідомлення “Розмірність повинна бути не більшою за 20”

Кінець процедури Vvidn

Заголовок процедури Vid

Опис використаної у процедурі Vvidn мітки (m8)

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

Присвоєння змінній k введеної розмірності системи

{075} - {076} Перевірка умови чи k>4 якщо так то змінній k присвоюється 4, що буде використане для обмеження розмірності вікна.

{077} - {079} Присвоєння змінній позиціонування курсора та змінній організації початкових значень циклів початкового значення j

{080} Виклик процедури Window із вхідними параметрами та назвою виводячого вікна “Ввід елементів”

{081} - {082} Початок циклів нумерації ввідних елементів

{083} - {086} Перехід у позицію з координатами (3,t+1) та вивід на екран “Елемент а[i,j]=” або “вільний елемент [i,j]=” залежно від поточного вводу елемента та очікування вводу цього елемента

{087} Перевірка умови чи вікно вводу повністю заповнене, якщо так то початок складного оператора

{088} – {089} Присвоєння змінній позиціонування курсора та змінній початку циклу по рядках відповідно значень 1 і значення початкового номера рядка

{090} – {094} Перевірка чи остатньовведене число є елементом чи вільним членом. Якщо елементом, то змінній початку циклу по стовпцях присвоюється номер наступного стовпця. Якщо вільний елемент то змінній h стає одиницею, змінна початку циклу по рядкає дорівнює номеру наступного стовпця, якщо вільний елемент то змінна h стає одиницею.

{095} Очистка заповненого елементами вікна.

{096} Передача на мітку M8

{097} Закінчення складного оператора

{098}-{102} Перевірка чи в поточне вікно ще вмітиться наступний елемент: якщо так, то змінна переміщування курсора збільшується на одиницю, а змінній h і z присвоюється початкове значення один.

{103} Закінчення циклу вводу елементів

{104} Закінчення процедури Vvid

{105} Заголовок процедури Obchuslennia

{106} Опис використаних у процедурі міток

{107} Початок процедури

{108} Присвоєння змінній j номера стовпця вільних елементів

{109}-{110} Цикл заміни вільних елементів на протилежні

{111}-{112} Обнуління змінної t, яка буде використовуватись для обчислення в циклі кількості виконуваних стовпців та присвоєння змінній e розмірності розв’язуючої системи

{113}-{114} Цикл обнуління масиву E, який буде використовуватись для запам’ятовування кількості зсувів вліво кожного стовпця після кожного наступного викидування стопця.

{115} Початок циклу обчислення невідомих

{116} Обнуління змінної I

{117}-{118} Перевірка чи I дорівнює кількості рядків системи. Якщо так то перехід на мітку.

{119} Присвоєння нуля змінні j

{120}-{123} Перевірка чи з даного перевіряючогорядка, вже був використаний елемент для основного елемента чи ні. Якщо так, то перехід на мітку m4

{124} Надання змінній j нульового значення

{125} Збільшення змінної j на одиницю

{126} Перевірка умови: чи дійшли до останнього рядка, чи перевіряючий елемент стоїть перед вільним елементом даного рядка і чи даний елемент дорівнює нулю. Якщо все так то перехід на мітку m6

{127} Перевірка умов: чи перевіряючий елемент є передостатнім в рядку I чи наний елемент дорівнює нулю, якщо так то перехід на мітку m2

{128}-{132} Якщо перевіряючий елемент дорівнює нулю то перехід на мітку m5 і запам’ятовування індексів даного перевіряю чого елементу

{133} Присвоєння змінній k остатнього перевіряю чого елементу

{134}-{135} Початок циклів по стовпцю і рядку для обчислення елементів залишившиїся системи після попередніх обчислень.

{136}-{137} Перевірка умови: чи обчислювальний елемент не стоїть в рядку або стовпці до якого належить основний елемент. Якщо умова виконується то поточний елемент обчислюється за правилом обчислення двомірного визначника і результат запам’ятовується в інший масив

{138}-{139} Якщо обчислювальний елемент стоїть в рядку де є останьо обраний основний елемент але не є основним елементом то обчислювальний елемент запам’ятовується в масив В з протилежним знаком

{140} Закінчення циклу обчислення елементів

{141}-{142} Початок циклу по викиданню стовпця з основним елементом

{143}-{144} Якщо індекс стовпця менший за цей же індекс останнього елемента то в масив А буде записане число, яке одержується шляхом ділення елемента з масиву В з цими ж індексами на основний елемент

{145}-{148} якщо індекс стовпця більший або рівний цьому ж індексу основного елемента то в масив А запам’ятовується число отримане шляхом ділення наступного елемента поточного рядка з масиву В на основний елемент

{149} Закінчення циклу викидання стовпця

{150} Збільшення змінної t на одиницю

{151} Запам’ятовування в масив С з яких рядків уже були використані елементи для основного елемента

{152} Запам’ятовування в масив D навпроти кожного рядка остаточний результат якій змінній має відповідати

{153}-{158} Цикл запам’ятовування кількості зсувів вліво після кожного наступного викидування стовпця

{159} Зменшення змінної z на одиницю

{160} закінчення циклу обчислення невідомих

{161} присвоєння змінній z одиниці

{162}-{165} Цикл впорядкування результатів

{166} Присвоєння змінній t нуля

{167} Виклик процедури Wind і надання розмірів та заголовку вікна, яке виводиться цією процедурою

{168}-{171} Цикл виводу результатів

{172} Перехід на мітку m7

{173} Виклик процедури Wind і задання заголовку

{174} Перехід у позицію (10,3) і вивід повідомлення “Система немає розв’язку”

{175} Очікування натискання клавіші на клавіатурі

{176} Закінчення процедури Obchusennja

{177} Початок головного блоку програми

{178} Виклик процедури Vikno

{179} Очікування натискання однієї з ф-них клавіш: F1, F2, F3 або ESC

{180} Заголовок оператора вибору, який аналізує код натиснутої клавіші

{181} Якщо нажато клавішу F1 то здійснюється виклик процедури Widn

{182} Якщо нажато клавішу F2, викликається процедура Vvid

{183} Якщо нажато клавішу F3 виклик процедури Obchuslenja

{184} Кли нажато ESC – вихід з програми

{185} Закінчення оператору вибору

{186} Прехід на мітку m1

{187} Кінець програми

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

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

Для перевірки на правильність даної програми розроблені наступні тести:

Тест 1.

Система з трьома невідомими

Результати:

Порівнявши результати обчислені вручну до тестових даних і результати обчислені за допомогою програми Kursova.pas, фкі подані у додатку бачимо що все співпадає, тому можна стверджувати, що програма дає правильні результати і саме не містить помилок. Однак остаточним висновок про правильність програми можна зробити тільки після тривалої експлуатації.

Висновок

Розв’язування математичних задач за допомогою персональних комп’ютерів має велике значення, оскільки кожен розв’язок є оперативним та точним. Обчислюючи математичну задачу за допомогою сучасного комп’ютера, зрозуміло, що ймовірність помилкового введення даних в пам’ять ПК є набагато більшою чим ймовірність помилкового обчислення комп’ютером, чим тут практично можна знехтувати. Тоді що вже можна говорити про порівняня ручного обчислення і машинного. Тому надзвичайно важливо самостійно складати програми для виникаючих задач, які потрібно часто рішати. Звичайно головним в написанні програми є правильність її складання, оскільки правильність результатів обчислення найперш залежить від правильності програми.

В даній курсовій роботі складено програму по обчисленню різних систем рівнянь з квадратною матрицею. Дану програму розроблено в середовищі Turbo Pascal. Її налагоджено з використанням різноманітних тестових даних. Прикладом для перевірки роботоздатності програми було розроблено вручну тест. Результати обчислення вручну та за допомогою комп’ютера повністю співпали. Тому можна вважати цей програмний продукт готовим для практичного застосування.

Список використаної літератури

Turbo pascal(учебник) / С.А. Немнюгин – СПБ: Издательство “Питер”, 2000.

М.Я. Ляшенко, М.С. Головань. Чисельні методи. К.:”Либідь”, 1996 – 285 с.

Математика для техникумов – Алгебра и начала анализа.

Додаток 1

(***********************************************************)

(* програма по розвязуванню *)

(* систем лiнiйних рiвнянь *)

(* методом Жордана-Гауса,написана до курсового проекту. *)

(* Програму склав Добромильський Iван *)

(************************************************************)

{001} program metod_Zhordana_Hausa;

{002} uses crt;

{003} const m!;

{004} type m_1=array[1..m,1..m] of real;

{005} m_2=array[1..m] of real;

{006} m_3=array[1..m] of integer;

{007} label m1;

{008} var A,B:m_1; X:m_2; C,D,E:m_3;

{009} R:real;

{010} i,j,k,t,l,z,h,n,p:integer;

{011} s:char;

(* Процедура виводу рамки *)

{012} procedure ramka(x1,y1,x2,y2:integer);

{013} begin

{014} gotoxy(x1,y1);write('Й');

{015} for i:=1 to x2-x1-1 do write('Н');

{016} write('»');

{017} for i:=1 to y2-y1-1 do begin

{018} gotoxy(x2,y1+i);write('є');

{019} gotoxy(x1,y1+i);write('є');

{020} end;

{021} gotoxy(x1,y2);write('И');

{022} for i:=1 to x2-x1-1 do write('Н');

{023} write('ј');

{024} gotoxy(x1+3,y1);write('[ю]');

{025} end;

(* Процедура опису вiкна *)

{026} procedure windo(x1,y1,x2,y2:integer;Nazva:string);

{027} begin

{028} TextColor(15);

{029} TextBackGround(1);

{030} Window(x1,y1,x2,y2);

{031} clrscr;

{032} ramka(2,1,x2-x1,y2-y1+1);

{033} l:=x2-x1+1-length(nazva);

{034} gotoxy((l div 2)+3,1);write(Nazva);

{035} end;

(* Процедура виводу загального опису *)

{036} procedure vikno;

{037} begin

{038} TextBackGround(15);TextColor(1);

{039} for i:=1 to 80 do

{040} for j:=1 to 25 do begin

{041} gotoxy(i,j);write(' ');

{042} end;

{043} windo(50,2,75,7,' Меню ');

{044} gotoxy(3,2);write('F1-Ввiд розмiрностi');

{045} gotoxy(3,3);write('F2-Ввiд даних');

{046} gotoxy(3,4);write('F3-Вивiд результатiв');

{047} gotoxy(3,5);write('ESC-Вихiд');

{048} windo(50,10,78,16,' Про автора ');

{049} gotoxy(3,2);write('Програма курсово» роботи.');

{050} gotoxy(3,3);write('Складена студентом групи');

{051} gotoxy(3,4);write('39-П Добромильським I.');

{052} gotoxy(3,5);write('Дата складення програми');

{053} gotoxy(3,6);write('травень 2003р');

{054} end;

(* Процедура виводу вiкна *)

{055} procedure wind(x1,y1,x2,y2:integer;Nazva:string);

{056} begin

{057} vikno;

{058} windo(x1,y1,x2,y2,nazva);

{059} end;

(* Пороцедуга вводу розмiрностi квадратно» матрицi *)

{060} procedure vvidn;

{061} begin

{062} wind(2,2,47,5,'=Ввiд розмiрностi квадратно» матрицi');

{063} gotoxy(3,2); write('n=');

{064} readln(n);

{065} if n>=m then begin

{066} wind(2,2,40,6,'Повiдомлeння');

{067} gotoxy(4,3);writeln('Розмiрнiсть повинна не бiльша ',m-1,'');

{068} S:= readkey;

{069} end;

{070} end;

(* Процедура вводу елементiв *)

{071} procedure vvid;

{072} label m8;

{073} begin

{074} k:=n;

{075} if k>4 then

{076} k:=4;

{077} t:=1;

{078} z:=1;

{079} h:=1;

{080} m8:wind(2,2,35,k*k+k+3,'Ввiд елементiв');

{081} for i:=z to n do

{082} for j:=h to n+1 do begin

{082} gotoxy(3,t+1);

{084} if j<=n then write ('Елемент a[',i,j,']=')

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5209
Авторов
на СтудИзбе
430
Средний доход
с одного платного файла
Обучение Подробнее