Міністерство транспорту та звязку України
Державний департамент з питань звязку та інформатизації України
Одеська національна академія звязку ім.О.С.Попова
Курсова робота
з предмету
“Програмування та алгоритмічні мови”
тема:
„Програмування в Delphi”
Виконав(ла) студент(ка) гр. САТкв-37:
Носур І.
перевірив: Власенко В.М.
з оцінкою______________
2007
ЗМІСТ
Вступ
ТЕОРЕТИЧНА ЧАСТИНА
Програмування в Delphі.
Основні елементи програми.
Основні частини програми.
Особливості архітектури програми в ос windows.
Архітектура програми в ос windows, взаємодія програми з операційною системою.
Тест-програма.
ПРАКТИЧНА ЧАСТИНА
Метод гаусса
Висновок
Список використаної літератури
Додаток
ВСТУП
Метою даної курсової роботи є розробка програми використання метода Гаусса для ПЕОМ типу PC з операційною системою Windows. Розробка програми повинна вестись за допомогою мови програмування Object Pascal в середовищі Delphi - для операційної системи Windows 9x-XP.
В даній курсовій роботі викладено теоретичний матеріал для даного метода, алгоритм роботи програми, текст та зовнішній вигляд програм.
Розроблену програму можна використовувати в навчальному процесі.
ТЕОРЕТИЧНА ЧАСТИНА
Програмування в Delphi.
Delphi - це обектно-орієнтоване середовище для візуальної побудови програмних продуктів, засноване на мові Object Pascal, що є переробленою й істотно доповненою версією Turbo Pascal фірми Borland.
Програмування в Delphi складається з двох основних етапів:
1. Візуальна побудова програми на основі обєктних компонентів і настроювання їх властивостей, в результаті чого можна швидко сформувати користувальницький інтерфейс і забезпечити значну частину функціональності додатка.
2. Написання програмного коду мовою Object Pascal для забезпечення особливої функціональності додатка, яку неможливо досягти використанням візуальної побудови.
З моменту першої реалізації мови Pascal технології програмування зробили величезний крок вперед. І, незважаючи на те, що Pascal теж розвивався, його останній версії, випущеній фірмою Borland у 1990 році, істотно бракує можливостей, властивих іншим сучасним мовам програмування. В середовищі Delphi використовується оновлений варіант цієї популярної мови. Зміни торкнулись, перш за все, обєктно- орієнтованої частини Pascal, однак, здавалося б цілком завершені інструменти структурного і модульного програмування також придбали деякі нові особливості.
Розглянемо основні елементи мови програмування Pascal, звертаючи увагу на зміни, що відбулися з ним в Delphi.
Основні елементи програми
Основними елементами програми мовою Object Pascal є:
· оператори - команди, що визначають структуру програми (наприклад, оператори розгалуження і зациклення) або виконуючі які-небудь дії (наприклад, арифметичні операції чи операції порівняння):
· ключові слова - команди, використовувані звичайно для відокремлення одних частин програми від інших. Ключові слова призначаються для компілятора, губляться в процесі побудови програми, що виконується і не виконуються в буквальному значенні цього слова;
· директиви компілятору - аналогічні ключовим словам, але впливають не на програму і її структуру, а на процес компіляції і побудови програми. Частину директив компілятору можна установити за допомогою головного меню інтегрованого середовища, однак використання директив у тексті програми допомагає використовувати їх вибірково - не для всієї програми, а для окремих її частин.
Основна частина програми
Програма на Object Pascal, як і в більш ранніх версіях Pascal, складається з основної частини, власне і названою програмою (англ. Program - Програма) і декількох модулів (англ. Unit - Модуль), що підключаються на етапі компіляції до основної частини програми, наявність яких не обовязкова. Розглянемо структуру основної частини програми.
Program
.......... Заголовок програми
Uses
де хk -- невідомі величини; а ij -- задані елементи розширеної матриці системи рівнянь. Для розвязку СЛАР приміняють два класи методів: прямі та ітераційні. Прямі методи універсальні і приміняються до розвязку систем невисокого порядку (n< 200). Ітераційні методи зручно використовувати для СЛАР високого порядку з слабо заповненими матрицями.
Метод Гаусса відноситься до прямих методів. Алгоритм методів складається з двох етапів. Перший етап називається прямим ходом і заключається у послідовному виключенні невідомих з рівнянь, починаючи з х1.
З першого рівняння системи(1.1) виражаємо невідоме х1:
х1 = (а1,n+1 - а12 х2 - ... -а1n хn )/а11, (1.2)
що можливе при а11 ? 0, в іншому випадку потрібно виконати перестановку рівнянь системи. Згідно формулі (1.2) потрібно кожен елемент першого рядка розширеної матриці СЛАР поділити на діагональний елемент
а1j(1) = a1j /a11. (1.3)
Потім підставляємо вираз (1.2) у всі рівняння системи, тим самим відкидаємо х1 із всіх рівнянь, крім першого. Елементи розширеної матриці перетворюємо по формулі
a i j(1) = а i j - аi 1а1j(1) ,
i = 2, 3, ..., n; j = 1, 2, ..., n+1. (1.4)
У результаті виключення першого невідомого х1 із всіх рівнянь, всі елементи першого стовпчика перетворення матриці будуть рівні нулю, крім а11(1) =1.
Невідоме х2 виражаємо із другого рівняння системи і виключаємо із останніх рівнянь і т.д. В результаті отримуємо СЛАР з верхньою трикутною матрицею, у якої всі елементи нижче головної діагоналі рівні нулю.
Запишем вирази для невідомих хk і перетворення елементів розширеної матриці системи, згідно формулам (1.2) - (1.4):
xk = (аk,n+1 -? аk j хj )/а kk , (1.5)
а kj (m+1) = аkj (m)/ а kk(m),
а i j (m+1)= а i j (m)- а i k(m)а kj (m).
Другий етап розвязку СЛАР називається зворотнім ходом методу Гаусса і полягає в послідовному визначенні невідомих х k за першою формулою (1.5), починаючи з невідомого х n і закінчуючи х1 .
Точність результатів буде визначатися точністю виконання арифметичних операцій при перетворенні елементів матриці. Для зменшення похибки при діленні на діагональний елемент (друга формула (1.5)) рекомендується виконати таку перестановку рівнянь, щоб поставити на діагональ найбільший по модулю із всіх елементів цього стовпчика. Така процедура називається вибором головного елемента стовпчика. Кількість арифметичних операцій у методі Гаусса звязано з розмірністю системи і наближено рівно 2/3 n3 . Контроль отриманих розвязків можна провести шляхом їх підстановки в початкову СЛАР і знаходження rk , різницю між правими і лівими частинами рівнянь:
r k = а k,n+1 - ? аk j х j (1.6)
При малій похибці розвязок величини r k буде наближатися до нуля.
Мал.1.1. Блок-схема програми розвязку СЛАР методом Гаусса
Програму розвязку СЯАР методом Гаусса складемо з трьох блоків (мал. 1.1). В блоці О (основна програма) задамо порядок системи і звертаємось до блоку 1, в якому визначаються елементи розширеної матриці СЛАР. Потім звертаємось до блоку 2, де реалізована програма методу Гаусса. Після цього виведем на дисплей результати розвязку СЛАР або звістку про те, що розвязок не існує у випадку виродженої матриці (DЕТ = О).
Для загальності блок 1 оформлений у вигляді окремої підпрограми. Тут елементи розширеної матриці задаються по рядкам у діалоговому режимі з клавіатури ПЕВМ. Хоча для інших конкретних задач елементи матриці можуть визначатися шляхом обчислення за даним алгоритмом, що потребує зміни програми блоку 1. Блок 2 являє собою програму методу Гаусса, яка складається з програми прямого і зворотнього ходів. У процесі прямого ходу здійснюється перестановка рядків матриці з метою вибору головних елементів стовпців.
Особливістю програми 1.1 мовою Паскаль є введення нових типів перемінних MAT і VEC для матриці А і вектора результатів Х. Таке введення потрібне тому, що перемінні А і Х є формальними і фактичними параметрами процедур.
Для контролю програм вирахуємо систему рівнянь
х1 - 3х2 + 2х3 =7 ,
4х1 + 6х2 + х3 = 3 ,
2х1 + х2 - 2х3 = -1,
у результаті отримаємо х1 = 2, х2 = -1, х3 = 1.
Реалізація програми для метода Гауса для СЛАР
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
Type
MAT=array [1..20,1..21] of real;
VEK=array [1..20] of real;
Var
A:MAT;
X:VEK;
I, N:integer;
S: real;
Procedure MATR (N:integer; var A:MAT);
Var
I, J:integer;
Begin
for I:=1 to N do
For J:=1 to N+1 do
begin
Write ( A, I:2, J:2, ? => );
readln (A[I, J])
End
End;
Procedure Gauss (N:integer; var A:MAT; var X:VEK; var S:real);
Var
I,J,K,L,K1,N1:integer;
R:real;
Begin
N1:= N+1;
For K := 1 to N do
begin
K1:= K+1;
S:= A[K,K];
J := K;
For I := K1 to N do
begin
R:= A[I,K];
If abs (R) > abs (S) then
begin
S:= R;
J:= I
end
End;
If S = 0.0 then exit;
If J <> K then
for I:= K to N1 do
begin
R:= A[K, I];
A[K, I]:= A[J, I];
A[J, I]:= R
end;
For J:= K1 to N1 do A[K, J]:= A[K, J] / S;
For I:= K1 to N do
begin
R:= A[I, K];
For J:= K1 to N1 do A[I, J]:= A[I, J] - A[K, J] *R
End
End;
If S <> 0.0 then
For I:= N downto 1 do
begin
S:= A[I, N1];
For J:= I+1 to N do S:= S - A[I, J]*X[J];
X [I]:= S
End
End;
begin
Repeat
write ( N ? => );
Readln (N);
Matr (N,A);
Gauss (N, A, X, S);
If S <> 0.0 then
for I:= 1 to N do
writeln ( X, I:2, = , X[I])
Else
writeln ( DET = 0);
Until false ;
Readln;
Readln;
end.
Результат роботи програми
Висновок
При виконанні курсової роботи я поглибила свої знання в області компютерної техніки, набула практичних навичок роботи з ЕОМ та інформацією представленою в ній, навчилась самостійно шукати методи розвязку задач, освоїла прийоми систематизації знань та використала їх на практиці, глибше зрозуміла основи алгоритмізації та програмування при розвязку задач, навчилась виконувати оформлення результатів роботи та представляти їх при захисті, освоїла основні елементи практичного програмування, уяснила роль програмного забезпечення ЕОМ, добре засвоїла принципи роботи з найбільш необхідним програмним забезпеченням та мовами програмування (Windows, MS Offise, Delphi).
Список використаної літератури
1. Бородич Ю.С. и др. Паскаль для персональных компьютеров. Минск, изд-во "Вышейшая школа". 1991
2. Зуев Е.А. и др. Язык прграммирования Turbo Pascal, М. "Унитех", 1992
3. Введение в Делфи 6. Электронный вариант.
4. Сухарев М.В. Основы Делфи. изд-во "Наука и техника", С-П, 2004
5. Хомоненко А. и др. Делфи 7, С-П. "БХВ-Петербург", 2006
6. Галисеев Г.В. Компоненты в Делфи 7. изд-во "Диалектика", С-П, 2004
7. Ф.В. Левитин, Алгоритмы: введение в разработку и анализ, М.”Вильямс”, 2006.
8. С.В.Поршнев, Вычислительная математика. Курс лекций, СПб,”БХВ-Петербург”, 2004.
9. К.Х. Зеленский, Компьютерные методы прикладной математики, К,”Дизайн”, 1999.
10. В.Е. Краскевич и др., Численне методы в инженерных исследованиях,-К,”Вища школа”,1986.
! | Как писать курсовую работу Практические советы по написанию семестровых и курсовых работ. |
! | Схема написания курсовой Из каких частей состоит курсовик. С чего начать и как правильно закончить работу. |
! | Формулировка проблемы Описываем цель курсовой, что анализируем, разрабатываем, какого результата хотим добиться. |
! | План курсовой работы Нумерованным списком описывается порядок и структура будующей работы. |
! | Введение курсовой работы Что пишется в введении, какой объем вводной части? |
! | Задачи курсовой работы Правильно начинать любую работу с постановки задач, описания того что необходимо сделать. |
! | Источники информации Какими источниками следует пользоваться. Почему не стоит доверять бесплатно скачанным работа. |
! | Заключение курсовой работы Подведение итогов проведенных мероприятий, достигнута ли цель, решена ли проблема. |
! | Оригинальность текстов Каким образом можно повысить оригинальность текстов чтобы пройти проверку антиплагиатом. |
! | Оформление курсовика Требования и методические рекомендации по оформлению работы по ГОСТ. |
→ | Разновидности курсовых Какие курсовые бывают в чем их особенности и принципиальные отличия. |
→ | Отличие курсового проекта от работы Чем принципиально отличается по структуре и подходу разработка курсового проекта. |
→ | Типичные недостатки На что чаще всего обращают внимание преподаватели и какие ошибки допускают студенты. |
→ | Защита курсовой работы Как подготовиться к защите курсовой работы и как ее провести. |
→ | Доклад на защиту Как подготовить доклад чтобы он был не скучным, интересным и информативным для преподавателя. |
→ | Оценка курсовой работы Каким образом преподаватели оценивают качества подготовленного курсовика. |
Курсовая работа | Деятельность Движения Харе Кришна в свете трансформационных процессов современности |
Курсовая работа | Маркетинговая деятельность предприятия (на примере ООО СФ "Контакт Плюс") |
Курсовая работа | Политический маркетинг |
Курсовая работа | Создание и внедрение мембранного аппарата |
Курсовая работа | Социальные услуги |
Курсовая работа | Педагогические условия нравственного воспитания младших школьников |
Курсовая работа | Деятельность социального педагога по решению проблемы злоупотребления алкоголем среди школьников |
Курсовая работа | Карибский кризис |
Курсовая работа | Сахарный диабет |
Курсовая работа | Разработка оптимизированных систем аспирации процессов переработки и дробления руд в цехе среднего и мелкого дробления Стойленского ГОКа |